
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
13.09.2013, 13:15
|
|||
|---|---|---|---|
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
Есть сущности: А и Б. В предметной области между ними может быть слабая и сильная связь. При этом слабая исключает сильную и наоборот. Я делаю две таблицы связи: А(id) - АБ_сильная(idA, idБ) - Б(id) и А(id) - АБ_слабая(idA, idБ) - Б(id) Таблиц А и Б по одной, естественно, просто между ними две таблицы связи для двух взаимодействий - слабого и сильного. Это нормальный вариант, или можно лучше? Например, через одну таблицу, где будет ещё поле на тип связи (а для этого, наверное, придётся ещё и таблицу типов связей заводить)? По идее, типов связей больше не будет - только два. Я вижу пока только один минус моего варианта - выделенное выше жирным никак не контролируется, кроме как самим пользователем, заполняющим БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2013, 13:17
|
|||
|---|---|---|---|
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
Да, и при моём варианте это может быть распознано как нарушение нормальности БД или что-то в этом роде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2013, 13:23
|
|||
|---|---|---|---|
|
|||
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
Разумеется, одна таблица с полем "тип связи" лучше. Контроль осуществляется примитивным уникальным индексом на IdA, IdB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2013, 13:34
|
|||
|---|---|---|---|
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
Кот МатроскинРазумеется, одна таблица с полем "тип связи" лучше. Контроль осуществляется примитивным уникальным индексом на IdA, IdB Т. е. придётся завести таблицу "тип связи"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2013, 13:53
|
|||
|---|---|---|---|
|
|||
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
user7320Кот МатроскинРазумеется, одна таблица с полем "тип связи" лучше. Контроль осуществляется примитивным уникальным индексом на IdA, IdB Т. е. придётся завести таблицу "тип связи"? Да как хотите. Заводить на каждый чих таблицу-справочник необязательно, хотя зачастую удобно (если интересно более подробно - поищите на форуме "справочник полов") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2013, 14:53
|
|||
|---|---|---|---|
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
http://www.sql.ru/forum/1037616/vopros-o-celesoobraznosti-spravochnikov-m-i-zh?hl=?????????? ????? Ладно, гомосеки победили )) , хотя у меня и не полы! Да и я тоже склонялся к таблице-справочнику, т. к. вроде есть вероятность появления третьего варианта связи, потому её в сущность неплохо бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2013, 15:26
|
|||
|---|---|---|---|
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
user7320Это нормальный вариант, или можно лучше? Скажу так: если эти связи очень непохожи друг на друга (обладают совершенно разными наборами атрибутов, разными подпрограммами работы с ними итп), то такой вариант имеет право на жизнь, но "по умолчанию" тип связи - куда лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2013, 16:37
|
|||
|---|---|---|---|
|
|||
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
Я так и не понял, зачем отдельная таблица - справочник. Да пусть этих типов связей хоть 1000 разных - с условием "одна исключает другую" это никак не связано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2013, 16:38
|
|||
|---|---|---|---|
|
|||
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
Я так и не понял, зачем отдельная таблица - справочник. Да пусть этих типов связей хоть 1000 разных - с условием "одна исключает другую" это никак не связано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2013, 18:43
|
|||
|---|---|---|---|
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
Теперь я сделал так. Код: plaintext 1. 2. А как бы сделали вы? При условии, что типов связей гипотетически может стать больше, чем 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2013, 18:49
|
|||
|---|---|---|---|
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
Мимо пробегал...Я так и не понял, зачем отдельная таблица - справочник. Да пусть этих типов связей хоть 1000 разных - с условием "одна исключает другую" это никак не связано. Можно и руками написать, что за тип связи, но лучше заставить пользователя выбирать из выпадающего списка готовые типы, чем обрабатывать ошибки пользователя при вводе руками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.09.2013, 18:49
|
|||
|---|---|---|---|
Как лучше дважды связать одни и те же сущности? |
|||
|
#18+
user7320Мимо пробегал...Я так и не понял, зачем отдельная таблица - справочник. Да пусть этих типов связей хоть 1000 разных - с условием "одна исключает другую" это никак не связано. Можно и руками написать, что за тип связи, но лучше заставить пользователя выбирать из выпадающего списка готовые типы, чем обрабатывать ошибки пользователя при вводе руками. Ну, а готовые типы лучше хранить в таблице-справочнике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&mobile=1&tid=1541123]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 10ms |
| total: | 268ms |

| 0 / 0 |

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