【发布时间】:2010-02-26 17:18:53
【问题描述】:
我有一张员工表,员工有兴趣,所以表可以这样设计:
create table emp(
id int(10) not null auto_increment,
name varchar(30),
interest varchar(50),
primary key(id)
);
或者这个:
create table emp(
id int(10) not null auto_increment,
name varchar(30),
interest enum('football','basketball','music','table tennis','volleyball'),
primary key(id)
);
兴趣数量可以在50左右。
我应该如何设计桌子?我应该使用枚举还是其他?
编辑:
感谢您的回复。
假设一个人可以是先生或女士或女士
我在 PHP 中创建了一个下拉列表。
<select name="role">
<option value="Mr.">Mr.</option>
<option value="Ms">Ms</option>
<option value="Madame">Madame</option>
</select>
对于数据库部分,我可以这样做:
create table emp(
id int(10) not null auto_increment,
name varchar(30),
role varchar(50),
primary key(id)
);
或者这个:
create table emp(
id int(10) not null auto_increment,
name varchar(30),
role enum('Mr.','Ms.','Madame'),
primary key(id)
);
在这种情况下,哪个更好?
【问题讨论】:
-
您想支持一个人的多种兴趣,还是应该一个人只能拥有一种兴趣?
-
那么,如果我为此使用单选按钮,我该怎么办?
-
关于编辑,我会说枚举是你的两个例子中更好的,因为它将你限制在预定的允许值。但是很多人会争辩说,即使是这样,您也应该制作一个查找表(带有 id 和描述的角色)
标签: sql mysql database-design data-modeling enums