mysql—最多可以有两个值的属性的列命名

dddzy1tm  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(284)

我在一个表中有一个机构的缩写字段。每个机构至少有一个缩写。一些机构也可以有第二个缩写。我不想为规范化创建另一个表,而是想为每个表创建两列,但不知道如何命名它们。
我可以称为 abbreviation_1 以及 abbreviation_2 但由于我通常只在sql中获取第一个,所以我不想将第一个称为 abbreviation_1 .
我可以称为 abbreviation 以及 abbreviation_2 这似乎不一致,因为在其他表中,我将iso国家代码作为 iso_code_2 对于双字符代码和 iso_code_3 三字符代码。
有更好的方法吗?

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

iqih9akk1#

我的建议是保持沉默 type 表中的列

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

那你就可以保持不同了 abbreviation 根据类型

bxjv4tth

bxjv4tth2#

创建两个不同的表:

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个字符的国家代码)。

相关问题