Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
11.09.2017, 09:42
|
|||
---|---|---|---|
|
|||
Как связать различные сущности с одним полем? |
|||
#18+
Есть таблица, описывающая системы (system, например). А у систем есть владелец - сотрудник, подразделение или организация. Как мне это связать в БД?! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.09.2017, 09:51
|
|||
---|---|---|---|
Как связать различные сущности с одним полем? |
|||
#18+
Victor Mog, Как это сделано в операционных системах: Сделай группу доступа, в неё включи тех, кто имеет права. К защищаемой системе присоединить один к одному группу доступа и, возможно, поле владельца системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.09.2017, 11:18
|
|||
---|---|---|---|
|
|||
Как связать различные сущности с одним полем? |
|||
#18+
Victor MogКак мне это связать в БД?! Используй foreign key между таблицами system и owner, Люк! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.09.2017, 11:34
|
|||
---|---|---|---|
|
|||
Как связать различные сущности с одним полем? |
|||
#18+
Может я не смог объяснить подробно... Нет таблицы owner ! Есть employees/i], [i]organisatrions и divisions - разные сущности! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.09.2017, 12:02
|
|||
---|---|---|---|
|
|||
Как связать различные сущности с одним полем? |
|||
#18+
Victor MogНет таблицы owner! Так создай. И перенеси туда общие поля из трёх перечисленных. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.09.2017, 12:44
|
|||
---|---|---|---|
Как связать различные сущности с одним полем? |
|||
#18+
Victor Mogу систем есть владелец - сотрудник, подразделение или организация.Иными словами, экземпляр сущности "контрагент" является атрибутом сущности "система". В этом случае - просто поле в таблице систем и FK в таблицу с деревом контрагентов. Либо экземпляр сущности "контрагент" является мульти-атрибутом сущности "система" (несколько экземпляров контрагента одновременно являются владельцем экземпляра системы). В таком случае дополнительная связывающая таблица СистемаКонтрагент, и FK из неё в обе таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.09.2017, 18:28
|
|||
---|---|---|---|
|
|||
Как связать различные сущности с одним полем? |
|||
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.09.2017, 08:37
|
|||
---|---|---|---|
Как связать различные сущности с одним полем? |
|||
#18+
registerersкак то так?Нет, как-то не так. Организация, Отдел, Сотрудник - в рамках предметной области это одна и та же сущность Владелец. И таблица должна быть одна, а не три. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.09.2017, 15:14
|
|||
---|---|---|---|
|
|||
Как связать различные сущности с одним полем? |
|||
#18+
Akinaэто одна и та же сущность Владелец. И таблица должна быть одна, а не три. Ты предлагаешь создать таблицу OWNER. А как ты бы поступал дальше? Вариант с полем-дискриминантом и IDом без внешнего ключа (OwnershipType + OwnerId) уже многократно (и справедливо) раскритикован именно за то, что не позволяет создать внешний ключ и добится декларативного контроля целостности ссылок. Его рассматривать не будем. Можно сделать в таблице OWNER по внешнему ключу на каждый тип владельца. Это позволит легко создать ограничение "тип владельца должен быть один и только один" (подсчитать количество NOT NULL'ов и потребовать, чтобы оно было равно 1). Но потребует вмешаться в структуру таблицы всякий раз, когда набор возможных типов владельцев изменяется. Второй вариант — сделать ссылки в противоположном направлении, от владельцев каждого конкретного типа к общей таблице OWNER. Но проконтролировать, чтобы на каждую запись OWNER была ровно одна ссылка — наверное, здесь придётся накручивать нетривиальную логику на триггерах или хранимках. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.09.2017, 16:22
|
|||
---|---|---|---|
Как связать различные сущности с одним полем? |
|||
#18+
Victor MogЕсть таблица, описывающая системы (system, например). А у систем есть владелец - сотрудник, подразделение или организация. Как мне это связать в БД?! Наследование и связь с общим предком. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=32&mobile=1&tid=1540135]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 231ms |
total: | 515ms |
0 / 0 |