Простой вопрос проектирования БД, который я, честно говоря, не могу наложить.SQL-таблицы, один столбец, нет Id
Во многих случаях у меня есть таблица типов, состоящая из идентификатора и имени типа. . Ala таблица код языка будет иметь 2 колонки
ТАБЛИЦА: language
language_id (1,2,3)
language_code (et, en-us, de)
Теперь я всегда раздавать LANGUAGE_ID в качестве внешнего ключа к другим таблицам,
НО
Какие лучше?
Чтобы передать language_id
в качестве внешнего ключа, а затем введите соединения, чтобы получить language_code
.
ИЛИ
оставить вне language_id
совсем так, что мы имеем
ТАБЛИЦА: language
language_code (et, en-us, de)
, а затем мы просто раздаем коды как внешние ключи и не включается никогда не будет когда мы хотим знать, например, что такое родной язык пользователя.
Мнения?
Поскольку эти коды языков довольно короткие (не более 5 символов - en_us) и * стандартизованные * по ISO, похоже, что они будут использовать хорошие кандидаты для непосредственного использования - я не вижу большой пользы при добавлении еще одного ' ID' здесь .... –
Это действительно просто «суррогатный ключ против естественного ключа». Я не уверен, какой наиболее рекомендуемый подход; afaik оспаривается, что лучше.ИМО, поскольку коды коротки и вряд ли меняются, я бы рекомендовал только подход 'language_code'. –