|
|
|
Нужно ли делать FK или делать запрос по ID? Вопрос по структуре БД
|
|||
|---|---|---|---|
|
#18+
Есть справочные данные. Каждая строка в справочнике является отдельной сущностью Например: Система, Оборудование, Помещение и тд и тп Каким образом лучше построить схему БД? Вариант 1: а) Создаем таблицу с типами с колонками ID, Code б) Создаем таблицу справочник c колонками ID, TypeID .... в) Создаем FK между таблицами справочника и типа г) Запрос из ПО для получения строки справочника представляет собой: Select * from 'Таблица справочник ', 'Таблица с типами' Where 'Таблица справочник'.TypeID = 'Таблица с типами'.ID and 'Таблица с типами'.Code = ..... => Код искомого типа зашит в ПО Вариант 2: а) Создаем таблицу справочник c колонками ID .... б) Запрос из ПО для получения строки справочника представляет собой: Select * from 'Таблица справочник ' Where 'Таблица справочник'.ID = ..... => ID искомой строки справочника зашита в ПО Какой вариант лучше??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 12:24 |
|
||
|
Нужно ли делать FK или делать запрос по ID? Вопрос по структуре БД
|
|||
|---|---|---|---|
|
#18+
3 раза прочитал вопрос - ничего не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 13:01 |
|
||
|
Нужно ли делать FK или делать запрос по ID? Вопрос по структуре БД
|
|||
|---|---|---|---|
|
#18+
Konstantin_T, Есть справочные данные. Каждая строка в справочнике является отдельной сущностью Например: Система, Оборудование, Помещение и тд и тп Агрегатный виртуальный тип - метаданные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 13:20 |
|
||
|
Нужно ли делать FK или делать запрос по ID? Вопрос по структуре БД
|
|||
|---|---|---|---|
|
#18+
Konstantin_TКакой вариант лучше?Каждый из них имеет свои преимущества и недостатки. Так что сравнение в духе "лучше-хуже", в данном случае, неуместно, выбор, скорее, определяется областью применения. С точки зрения проектирования можно ориентироваться на потенциальную возможность появления ссылочных полей и, cоответственно, FK, в которых может хранится ссылка на разные сущности. Грубый пример: В шапке документе нужна ссылка на юрлицо или физлицо. Если эти сущности не имеют общего "корня", то Вы не сможете воспользоваться FK, для проверки ссылочной целостности. Т.е., у первого варианта окажется преимущество. В остальных случаях, смешивать все справочники в одной таблице особого смысла нет, так как, в частности, то что было преимуществом в примере выше, может оказаться недостатком здесь. И в поле какой-нибудь ссылки может с равным успехом оказаться ссылка на "Оборудование" или "Помещение", что не обязательно будет верно в этом случае. Конечно, корректность можно проконтролировать кодом триггеров или процедур, или, несколько усложнив схему данных, но зачем делать сложнее, если можно проще ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2009, 14:44 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=86&tid=1543191]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 386ms |

| 0 / 0 |
