1

在 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’) .

我该怎么做呢?

4

4 回答 4

1

你想使用 MySQL 的ENUM数据类型:

AnENUM是一个字符串对象,其值选自创建表时列规范中明确枚举的允许值列表。

因此,在您的情况下:

`Type` ENUM('admin', 'author')
于 2012-07-01T08:37:12.017 回答
0

你应该使用 ENUM 数据类型 http://dev.mysql.com/doc/refman/5.0/en/enum.html

`type` ENUM ('admin','author')
于 2012-07-01T08:38:03.343 回答
0

如果您确定用户类型不会是其他任何东西,admin或者author您可以使用ENUM

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

但是,如果可能的用户类型需要扩展或者当您需要在表单中列出不同的用户类型时,这可能会导致反模式。如果是这种情况,您可以添加另一个表:

user_types (type)

typea在哪里VARCHAR(20)(应该足够长)。在您的users表中,您创建相同类型的字段并向user_types表中添加外键。


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

于 2012-07-01T08:41:10.090 回答
-1

枚举是数字、天数等列表的集合

ENUM('admin','author');
于 2016-06-01T12:30:04.627 回答