В основном ситуация выглядит так (упрощенно, псевдокод):
У меня 2 ТАБЛИЦЫ на человека и страну.
Таблица персон:
KEY INT ID, STRING NAME, STRING COUNTRY
Таблица страны:
KEY INT ID, STRING COUNTRY_NAME
Клиент может контролировать содержимое таблицы стран, поэтому он может добавлять и удалять округа в списке.Значения этой страны отображаются в раскрывающемся списке при создании лица.Когда человек создается, значение строки страны вставляется в столбец страны строки Person.
Для меня имеет смысл, что этот человек должен иметь ссылку на внешний ключ для страны, но поскольку клиент имеет контрольпо сравнению с тем, что появляется в таблице «Страна», они хранятся в виде отдельных таблиц, потому что вы не можете просто удалить использованные страны (ссылочная целостность и все).Это аргумент, выдвинутый моим коллегой, чтобы в этом случае не использовать внешние ключи, но я чувствую, что должно быть лучшее решение этой проблемы. Итак, прав ли мой коллега или есть лучшее решение?
Клиент может добавлять и удалять значения в таблице стран, но если значение удаляется из таблицы стран, созданный человек, который использовал это значение, должен сохранять свое значение.