Наименование столбца для атрибута, который может иметь не более двух значений - PullRequest
0 голосов
/ 19 октября 2018

У меня есть поле аббревиатуры в таблице для учреждений.Каждое учреждение имеет как минимум одну аббревиатуру.Некоторые учреждения также могут иметь второе сокращение.Вместо того, чтобы создавать еще одну таблицу для нормализации, я хочу создать два столбца для каждого, но не знаю, как их назвать.

Я могу назвать как abbreviation_1 и abbreviation_2, но так как обычно получаю первыйодин только в моих sqls, я не хочу называть первый как abbreviation_1.

Я могу назвать как abbreviation и abbreviation_2, что кажется несовместимым, потому что в других таблицах я держу страну ISOкоды как iso_code_2 для двухсимвольных кодов и iso_code_3 для трехсимвольных кодов.

Есть ли предпочтительный способ для этого?

CREATE TABLE institution (
    ....
    abbreviation VARCHAR(10) NOT NULL,
    abbreviation??? VARCHAR(10),
    ....
)

Ответы [ 3 ]

0 голосов
/ 19 октября 2018

Мое предложение: оставьте столбец type в этой таблице

CREATE TABLE institution (
    ....
    abbreviation VARCHAR(10) NOT NULL,
   type VARCHAR(10),
    ....
)

Тогда вы можете сохранить дифференциал abbreviation в соответствии с типом

0 голосов
/ 19 октября 2018

Я предлагаю:

CREATE TABLE institution (
    ....
    abbreviation VARCHAR(10) NOT NULL,
    abbreviationAlt VARCHAR(10),
    ....
)

или abbreviation_alt, если это ваше предпочтение.

0 голосов
/ 19 октября 2018

Создайте две разные таблицы:

create table institution (
    institutionId int auto_increment primary key,
    . . .
);

create table institutionAbbreviations (
    institutionAbbreviations int auto_increment primary key,
    institutionId int,
    abbreviation varchar(10),
    foreign key (institutionId) references institutions(institutionId)
);

Вы обнаружите, что это упрощает ваши запросы, если только сокращения не являются действительно разными вещами (например, 2- и 3-символьные коды стран).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...