|
|
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. При проектировании БД встал вопрос как избавиться от образовавшегося "кольца". Подробное описание: Допустим, таблица "Объект" (см. картинку) будет содержать разные объекты. Под объектом имеется в виду конкретный вариант из множества: гараж, квартира, дача. У них имеются разные атрибуты: площадь, этаж, количество комнат - если это квартира; площадь участка, фундамент, туалет - если это дача. Идея: вынести в таблицы - по причине имеющихся совершенно разных атрибутов у разных типов объекта (например, у гаража не будет атрибута "площадь кухни", "количество комнат", сколько соток, имеется ли баня в наличии, туалет и т.д. Таким образом добавим к таблице "Объект" FK на "Тип" объекта. Таблица "Тип" связана связью многим-ко-многим с таблицей "Атрибуты". Так мы можем узнать какие атрибуты есть у конкретного объекта (иначе говоря - какие атрибуты разрешены для конкретного типа объекта). Ну и таблица "Значение атрибута" ссылается как на объекты, так и на атрибуты и содержит значение конкретного атрибута какого-либо объекта (например, "Площадь: 40". Вопрос - как избавиться от круговой связи (кольца), чтобы при удалении записи не возникало ошибок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2016, 11:02 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
Это не кольцо, ибо связи не направлены по кругу. Удаление можно начать с таблицы значений атрибутов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2016, 11:07 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
miksoftЭто не кольцо, ибо связи не направлены по кругу. Удаление можно начать с таблицы значений атрибутов. Именно, не кольцо. Поставь стрелочки на связах и увидишь. Проблема на 100% надумана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2016, 17:02 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
wikkkПри проектировании БД встал вопрос как избавиться от образовавшегося "кольца" Ответ: при проектировании БД такой вопрос вставать не должен. От колец избавляться незачем, даже если это действительно кольца. wikkkВопрос - как избавиться от круговой связи (кольца), чтобы при удалении записи не возникало ошибок? Какой записи? Как только ответите на этот вопрос, поймёте, что не можете ответить на вопрос "каких ошибок?" Любой набор строк, который можно вставить в некоей конкретной СУБД, можно и удалить в той же СУБД. Готов доказать это утверждение как теорему. Единственно, если вставка выполняется с извратами, удаление может потребовать прокрутить сторнирующие извраты в обратном порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2016, 18:58 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
softwarerЛюбой набор строк, который можно вставить в некоей конкретной СУБД, можно и удалить в той же СУБД. Готов доказать это утверждение как теорему. Код: sql 1. 2. 3. 4. 5. Прошу приступать к доказательству :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2016, 12:40 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
wikkkДоброго времени суток. При проектировании БД встал вопрос как избавиться от образовавшегося "кольца". ну можешь выкинуть таблицу связей типа атрибутов. Они связаны уже через "Значение атрибута". При создании объекта сразу создавай и все записи в значениях с незаполненными значениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2016, 12:51 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
Ivan Durakну можешь выкинуть таблицу связей типа атрибутов. Они связаны уже через "Значение атрибута".Нет, совсем выкидывать не стоит. Обычно редактирование атрибутов и редактирование значение атрибутов выполняется раздельно. Иногда даже разными людьми. Ivan DurakПри создании объекта сразу создавай и все записи в значениях с незаполненными значениями.На практике это зачастую сложно совместить в один момент времени. Например, у нас товары зачастую загружаются пачками по документам от поставщика (тут бывает нужно быстро, т.к. нужно приход сделать и т.п.), а характеристики менеджер проставляет позже, когда время будет. И, кстати, не все товары обязаны иметь все характеристики. Некоторые могут иметь только часть из них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2016, 13:00 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherПрошу приступать к доказательству :-) alter table test1 drop [disable] trigger td_test1. Any questions? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2016, 13:38 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
Классическая схема с категориями чем не годится? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2016, 13:43 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
Jean Green, классический ответ: оператору не требуется вызывать админа (и скорее всего программиста) при появлении новой должности в штатном расписании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2016, 14:45 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
softwarerCane Cat FisherПрошу приступать к доказательству :-) alter table test1 drop [disable] trigger td_test1. Any questions? Insufficient privileges :-) Впрочем, если вести речь только о реляционной модели, то я не спорю - что вставлено, то может быть удалено, и кольцевые связи - не ошибка, а могут быть даже полезны, например, в древовидных структурах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 00:30 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
Cane Cat FishersoftwarerЛюбой набор строк, который можно вставить в некоей конкретной СУБД, можно и удалить в той же СУБД. Готов доказать это утверждение как теорему. Код: sql 1. 2. 3. 4. 5. Прошу приступать к доказательству :-) "можно вставить " ты не прочитал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 08:08 |
|
||
|
Как избавиться от кольца в БД?
|
|||
|---|---|---|---|
|
#18+
спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2016, 16:45 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=17&tid=1540402]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 384ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...