基本的MySQL查询

时间:2012-07-01 08:35:42

标签: mysql

在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 个答案:

答案 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)

如果您确定用户类型不是adminauthor以外的任何其他内容,则可以使用ENUM

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

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

user_types (type)

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


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

答案 3 :(得分:-1)

Enum是列表的集合 像数字,天

ENUM('admin','author');