如何使用可变数量的属性设计表?

时间:2018-10-13 06:31:01

标签: database-design

想象一个存储个人详细信息的系统,该系统允许用户存储任意数量的电话号码,包括无。如果每个电话号码都在属性下,该如何存储在表格中?

1 个答案:

答案 0 :(得分:1)

不能。数据库中的表不能具有可变的列数。

在这种情况下,您要做的就是通过一个外键约束将用户存储在一个表中,并将电话号码存储在另一个表中:

CREATE TABLE Users
(
    id int PRIMARY KEY,
    firstName varchar(10),
    -- rest of the users details goes here
);

CREATE TABLE PhoneNumbers
(
    userId FOREIGN KEY REFERENCES Users(Id),
    PhoneNumber varchar(10) PRIMARY KEY,
    Description varchar(20) -- Home, Mobile, Office etc'
)

这样,每个用户可以拥有0、1或多个电话号码。