|
|
|
Есть ли смысл создавать foreign key на справочники?
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Меня мучают сомнения... Есть ли смысл создавать foreign key на справочники, коды которых уникальный? Например таких как ОКАТО, ОКТМО, ОКВЭД. Стоит ли делать код таких справочников первичным ключом. Как принято делать в серьезных учетных системах? Господа, поделитесь опытом. Сам я тоже подумал и больше склоняюсь к мысли что не стоит делать FK, потому что: 1. Можно будет вводить значения которых пока в справочнике нет (обратная сторона что такие значения не проверишь). 2. Можно обновлять справочник просто перезаписав его, т.к. нет зависимостей. 3. Опять же удалить значение справочника просто. Если есть FK то: 1. Можно исправить значение в справочнике и оно изменится во всех зависимых сущностях (таблицах). Хотя до этого делал системы у которых сущности всегда имели FK на справочники и проблем не возникало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 19:44 |
|
||
|
Есть ли смысл создавать foreign key на справочники?
|
|||
|---|---|---|---|
|
#18+
Evangelion013. Опять же удалить значение справочника просто. Повеселило такое "преимущество". Что же Вы так серьезно учитываете, какая предметная область? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 20:19 |
|
||
|
Есть ли смысл создавать foreign key на справочники?
|
|||
|---|---|---|---|
|
#18+
авторОКАТО, ОКТМО, ОКВЭД зачем ЭТИ справочники Вам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 20:25 |
|
||
|
Есть ли смысл создавать foreign key на справочники?
|
|||
|---|---|---|---|
|
#18+
NafавторОКАТО, ОКТМО, ОКВЭД зачем ЭТИ справочники Вам? То есть по вашему достаточно тестовых полей вместо этих справочников? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 20:39 |
|
||
|
Есть ли смысл создавать foreign key на справочники?
|
|||
|---|---|---|---|
|
#18+
Иногда достаточно одного текстового поля вместо всех. Например, в БД "Письма на деревню дедушке". В вопросе недостаточно информации. Какую проблему Вы, собственно, решаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2013, 11:47 |
|
||
|
Есть ли смысл создавать foreign key на справочники?
|
|||
|---|---|---|---|
|
#18+
Evangelion01Стоит ли делать код таких справочников первичным ключом. Нет. Лучше создать суррогатный ключ и делать ссылки на него. С кодами внешних справочников могут быть всякие неожиданности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2013, 10:35 |
|
||
|
Есть ли смысл создавать foreign key на справочники?
|
|||
|---|---|---|---|
|
#18+
Меня мучают сомнения... Есть ли смысл создавать foreign key на справочники, коды которых уникальный? FK есть смысл создавать всегда. Тут не надо думать, есть в данных ссылка -- в БД должен быть FK. Сам я тоже подумал и больше склоняюсь к мысли что не стоит делать FK, потому что: 1. Можно будет вводить значения которых пока в справочнике нет (обратная сторона что такие значения не проверишь). 2. Можно обновлять справочник просто перезаписав его, т.к. нет зависимостей. 3. Опять же удалить значение справочника просто. Если есть FK то: 1. Можно исправить значение в справочнике и оно изменится во всех зависимых сущностях (таблицах). Это всё называется "нарушение ссылочной целостности данных", и это то, чего в БД допускать нельзя. А ты хочешь наоборот добиваться, чтобы это было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2013, 09:09 |
|
||
|
Есть ли смысл создавать foreign key на справочники?
|
|||
|---|---|---|---|
|
#18+
Не стоит их (такие коды) делать PK - как минимум потому, что они могут быть не заполнены для некоторых случаев. Кстати, имхо, смысл объявлять "живое" поле как PK почти нулевой, разве что чуть-чуть места сэкономить, а вот "попоасть" можно по-крупному при изменении какого-нибудь стандарта или неучтенном совпадении (например совпадет ИНН у нашего и зарубежного контрагента или что то подобное) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2013, 14:52 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38388409&tid=1541124]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
149ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 472ms |

| 0 / 0 |

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