| 
 | 
| 
 
Как связать различные сущности с одним полем? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Есть таблица, описывающая системы (system, например). А у систем есть владелец - сотрудник, подразделение или организация. Как мне это связать в БД?! ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.09.2017, 09:42 | 
  
  
  
   | 
||
| 
 
Как связать различные сущности с одним полем? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Victor Mog, Как это сделано в операционных системах: Сделай группу доступа, в неё включи тех, кто имеет права. К защищаемой системе присоединить один к одному группу доступа и, возможно, поле владельца системы. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.09.2017, 09:51 | 
  
  
  
   | 
||
| 
 
Как связать различные сущности с одним полем? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Victor MogКак мне это связать в БД?! Используй foreign key между таблицами system и owner, Люк! Posted via ActualForum NNTP Server 1.5 ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.09.2017, 11:18 | 
  
  
  
   | 
||
| 
 
Как связать различные сущности с одним полем? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Может я не смог объяснить подробно... Нет таблицы owner ! Есть employees/i], [i]organisatrions и divisions - разные сущности! ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.09.2017, 11:34 | 
  
  
  
   | 
||
| 
 
Как связать различные сущности с одним полем? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Victor MogНет таблицы owner! Так создай. И перенеси туда общие поля из трёх перечисленных. Posted via ActualForum NNTP Server 1.5 ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.09.2017, 12:02 | 
  
  
  
   | 
||
| 
 
Как связать различные сущности с одним полем? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Victor Mogу систем есть владелец - сотрудник, подразделение или организация.Иными словами, экземпляр сущности "контрагент" является атрибутом сущности "система". В этом случае - просто поле в таблице систем и FK в таблицу с деревом контрагентов. Либо экземпляр сущности "контрагент" является мульти-атрибутом сущности "система" (несколько экземпляров контрагента одновременно являются владельцем экземпляра системы). В таком случае дополнительная связывающая таблица СистемаКонтрагент, и FK из неё в обе таблицы. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.09.2017, 12:44 | 
  
  
  
   | 
||
| 
 
Как связать различные сущности с одним полем? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.09.2017, 18:28 | 
  
  
  
   | 
||
| 
 
Как связать различные сущности с одним полем? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  registerersкак то так?Нет, как-то не так. Организация, Отдел, Сотрудник - в рамках предметной области это одна и та же сущность Владелец. И таблица должна быть одна, а не три. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 12.09.2017, 08:37 | 
  
  
  
   | 
||
| 
 
Как связать различные сущности с одним полем? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Akinaэто одна и та же сущность Владелец. И таблица должна быть одна, а не три. Ты предлагаешь создать таблицу OWNER. А как ты бы поступал дальше? Вариант с полем-дискриминантом и IDом без внешнего ключа (OwnershipType + OwnerId) уже многократно (и справедливо) раскритикован именно за то, что не позволяет создать внешний ключ и добится декларативного контроля целостности ссылок. Его рассматривать не будем. Можно сделать в таблице OWNER по внешнему ключу на каждый тип владельца. Это позволит легко создать ограничение "тип владельца должен быть один и только один" (подсчитать количество NOT NULL'ов и потребовать, чтобы оно было равно 1). Но потребует вмешаться в структуру таблицы всякий раз, когда набор возможных типов владельцев изменяется. Второй вариант — сделать ссылки в противоположном направлении, от владельцев каждого конкретного типа к общей таблице OWNER. Но проконтролировать, чтобы на каждую запись OWNER была ровно одна ссылка — наверное, здесь придётся накручивать нетривиальную логику на триггерах или хранимках. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.09.2017, 15:14 | 
  
  
  
   | 
||
| 
 
Как связать различные сущности с одним полем? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Victor MogЕсть таблица, описывающая системы (system, например). А у систем есть владелец - сотрудник, подразделение или организация. Как мне это связать в БД?! Наследование и связь с общим предком. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.09.2017, 16:22 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=32&msg=39519002&tid=1540135]:  | 
    0ms | 
get settings:  | 
    8ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    59ms | 
get topic data:  | 
    11ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    50ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 236ms | 
| total: | 386ms | 

| 0 / 0 | 

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