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

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

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


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

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

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

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


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


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

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


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