在MySQL中,我需要创建一个名为users的新表,其中包含以下字段:
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’) .
我该怎么做?
答案 0 :(得分:1)
您想使用MySQL的ENUM
数据类型:
ENUM
是一个字符串对象,其值从允许值列表中选择,这些值在表创建时在列规范中显式枚举。
因此,在您的情况下:
`Type` ENUM('admin', 'author')
答案 1 :(得分:0)
您应该使用ENUM数据类型 http://dev.mysql.com/doc/refman/5.0/en/enum.html
`type` ENUM ('admin','author')
答案 2 :(得分:0)
如果您确定用户类型不是admin
或author
以外的任何其他内容,则可以使用ENUM
:
`type` ENUM('admin', 'author') NOT NULL DEFAULT 'author'
但是,如果需要扩展可能的用户类型或者需要在表单中列出不同的用户类型,这可能会导致反模式。如果是这种情况,您可以添加另一个表:
user_types (type)
其中type
是VARCHAR(20)
(应该足够长)。在users
表中,您可以创建相同类型的字段,并在user_types
表中添加外键。
顺便说一下,不要存储简单的SHA1()
密码,而是使用Bcrypt:)
答案 3 :(得分:-1)
Enum是列表的集合 像数字,天
ENUM('admin','author');