Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Есть ли смысл создавать foreign key на справочники? / 8 сообщений из 8, страница 1 из 1
05.09.2013, 19:44
    #38388409
Evangelion01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл создавать foreign key на справочники?
Доброго времени суток!
Меня мучают сомнения... Есть ли смысл создавать foreign key на справочники, коды которых уникальный? Например таких как ОКАТО, ОКТМО, ОКВЭД. Стоит ли делать код таких справочников первичным ключом. Как принято делать в серьезных учетных системах? Господа, поделитесь опытом.

Сам я тоже подумал и больше склоняюсь к мысли что не стоит делать FK, потому что:
1. Можно будет вводить значения которых пока в справочнике нет (обратная сторона что такие значения не проверишь).
2. Можно обновлять справочник просто перезаписав его, т.к. нет зависимостей.
3. Опять же удалить значение справочника просто.
Если есть FK то:
1. Можно исправить значение в справочнике и оно изменится во всех зависимых сущностях (таблицах).

Хотя до этого делал системы у которых сущности всегда имели FK на справочники и проблем не возникало.
...
Рейтинг: 0 / 0
05.09.2013, 20:19
    #38388436
Cane Cat Fisher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл создавать foreign key на справочники?
Evangelion013. Опять же удалить значение справочника просто.


Повеселило такое "преимущество". Что же Вы так серьезно учитываете, какая предметная область?
...
Рейтинг: 0 / 0
05.09.2013, 20:25
    #38388443
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл создавать foreign key на справочники?
авторОКАТО, ОКТМО, ОКВЭД
зачем ЭТИ справочники Вам?
...
Рейтинг: 0 / 0
05.09.2013, 20:39
    #38388449
Evangelion01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл создавать foreign key на справочники?
NafавторОКАТО, ОКТМО, ОКВЭД
зачем ЭТИ справочники Вам?
То есть по вашему достаточно тестовых полей вместо этих справочников?
...
Рейтинг: 0 / 0
06.09.2013, 11:47
    #38388883
Cane Cat Fisher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл создавать foreign key на справочники?
Иногда достаточно одного текстового поля вместо всех. Например, в БД "Письма на деревню дедушке".

В вопросе недостаточно информации. Какую проблему Вы, собственно, решаете?
...
Рейтинг: 0 / 0
09.09.2013, 10:35
    #38390739
baracs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл создавать foreign key на справочники?
Evangelion01Стоит ли делать код таких справочников первичным ключом. Нет.
Лучше создать суррогатный ключ и делать ссылки на него.

С кодами внешних справочников могут быть всякие неожиданности.
...
Рейтинг: 0 / 0
11.09.2013, 09:09
    #38393141
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл создавать foreign key на справочники?
Меня мучают сомнения... Есть ли смысл создавать foreign key на справочники, коды которых уникальный?

FK есть смысл создавать всегда. Тут не надо думать, есть в данных ссылка -- в БД должен быть FK.


Сам я тоже подумал и больше склоняюсь к мысли что не стоит делать FK, потому что:
1. Можно будет вводить значения которых пока в справочнике нет (обратная сторона что такие значения не проверишь).
2. Можно обновлять справочник просто перезаписав его, т.к. нет зависимостей.
3. Опять же удалить значение справочника просто.
Если есть FK то:
1. Можно исправить значение в справочнике и оно изменится во всех зависимых сущностях (таблицах).


Это всё называется "нарушение ссылочной целостности данных", и это то, чего в БД допускать нельзя.
А ты хочешь наоборот добиваться, чтобы это было.
...
Рейтинг: 0 / 0
13.09.2013, 14:52
    #38396141
joker 79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл создавать foreign key на справочники?
Не стоит их (такие коды) делать PK - как минимум потому, что они могут быть не заполнены для некоторых случаев.

Кстати, имхо, смысл объявлять "живое" поле как PK почти нулевой, разве что чуть-чуть места сэкономить, а вот "попоасть" можно по-крупному при изменении какого-нибудь стандарта или неучтенном совпадении (например совпадет ИНН у нашего и зарубежного контрагента или что то подобное)
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Есть ли смысл создавать foreign key на справочники? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]