我是mysql的新手,我知道mysql中的基本数据类型。我用它来创建一个webapp。
我想创建一个表,其中特定字段可以包含值列表。例如 : UserDB(ID,name,list_of_phone_numbers,list_of_interests)。
在上面的例子中,
1)只能有一个名字。但是可以有多个电话号码。如何为“用户”创建电话号码列表?在同一行/记录中。 2)电话号码也可以有不同的部分,即ISD代码,STD代码等。
换句话说,我可以将用户定义的(使用基本数据类型创建)数据类型作为表字段吗?有没有像' struct'在C / C ++?
答案 0 :(得分:0)
您可以使用联结表创建电话号码列表,每个电话号码和用户一行。它可能看起来像这样:
create table UserPhones (
UserPhoneId int not null auto_increment primary key,
UserId int not null references Users(UserId),
PhoneTypeId int not null references PhoneTypes(PhoneTypeId),
PhoneNumber varchar(255),
constraint unq_userid_phonetype unique (UserId, PhoneTypeId),
constraint unq_userid_phonenumber unique (UserId, PhoneNumber)
);
PhoneType
将是一个参考表,其中包含“home”,“work”,“mobile”,“skype”等内容。