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

时间:2018-10-19 01:31:39

标签: mysql sql database-design

我在机构表中有一个缩写字段。每个机构至少都有一个缩写。一些机构也可以使用第二个缩写。除了要为标准化创建另一个表外,我不想为每个表创建两列,但不知道如何命名它们。

我可以命名为abbreviation_1abbreviation_2,但是由于我通常只在sql中获得第一个,所以我不想将第一个命名为abbreviation_1

我可以命名为abbreviationabbreviation_2,这似乎是不一致的,因为在其他表格中,我将两个字符代码的ISO国家/地区代码分别为iso_code_2和三个字符的iso_code_3代码。

有没有首选的方法?

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

3 个答案:

答案 0 :(得分:1)

我的建议是在该表中保留一个import requests

type

然后您可以根据类型保留不同的网络CREATE TABLE institution ( .... abbreviation VARCHAR(10) NOT NULL, type VARCHAR(10), .... )

答案 1 :(得分:0)

创建两个不同的表:

#include <vector>

using namespace std;

int main()
{
    vector<int> w, m;
    for (auto a : w)
    {
        bool added = false;
        for (auto it = m.begin(); it != m.end(); it++)
        {
            if (a > *it)
            {
                added = true;
                m.insert(it, a);
                if (m.size() > 3)
                {
                    m.resize(3);
                }
                break;
            }
        }
        if (!added && m.size() < 3)
        {
            m.push_back(a);
        }
    }
    return 0;
}

除非缩写确实是不同的东西(例如2个字符和3个字符的国家/地区代码),否则您会发现这简化了查询。

答案 2 :(得分:0)

我建议:

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

或者abbreviation_alt(如果您愿意)。