2012-07-01 33 views
1

在MySQL中,我需要创建一个名为用户提供下列领域的新表:基本MySQL查询

id – integer type (primary key) 
first_name – varchar type 
username – varchar type 
password – char type with length 40 (this is the length of a sha1 hash) 
type – varchar type (‘admin’ or ‘author’) 

一切看起来直截了当除了

type – varchar type (‘admin’ or ‘author’) . 

我该怎么办呢?

回答

1

你想使用MySQL的数据类型ENUM

一个ENUM是从在在创建表时列规范明确列举的允许值的列表中选择一个值的字符串对象。

因此,你的情况:

`Type` ENUM('admin', 'author') 
+0

或一个表的引用用户类型。 –

0

author您可以使用ENUM

`type` ENUM('admin', 'author') NOT NULL DEFAULT 'author' 

但是,如果可能的用户类型需要扩展或需要在表单中列出不同的用户类型时,可能会导致反模式。如果是这样的话,你可以添加其他表:

user_types (type) 

typeVARCHAR(20)(这应该是足够的长度)。在您的users表中,您可以创建相同类型的字段,并将外键添加到user_types表中。


顺便说一句,不存储密码的简单SHA1(),使用Bcrypt代替:)

-1

枚举列表 像数的集合,天

ENUM('admin','author');