良好的数据库设计:枚举值:整数或字符串?

tim*_*tim 10 database database-design

我在表中有一个列,用于存储枚举值.例如大,中,小或一周中的几天.这将对应于网页上显示的文本或下拉列表中的用户选择.什么是最好的设计?

将值存储为int,然后可能有一个表中包含enums/int对应的字符串.

只需将值作为字符串存储在列中,以使查询更加不言自明.

在什么点/数量的值最好使用整数或字符串.

谢谢.

Dis*_*ile 0

继续你的第一个例子。假设您创建了一个查找表:尺寸。它具有以下列: Id - 主键 + 身份名称 - varchar / nvarchar

如果按顺序插入,表中将有三行:小、中和大,其值为 1、2、3。

如果您有另一个使用这些值的表,您可以使用标识值作为外键...或者您可以创建第三列,它是这三个值的简写值。它的值是 S、M 和 L。您可以将其用作外键。您必须在该列上创建唯一约束。

至于下拉菜单,您可以使用其中之一作为幕后的值。

您还可以创建 S/M/L 值作为主键。

对于您关于何时最好使用整数与字符串的其他问题。关于这个问题可能有很多争论。很多人只喜欢使用身份值作为主键。其他人说最好使用自然键。如果您不使用身份作为主键,那么确保您有一个好的主键候选者很重要(确保它始终是唯一的并且值不会更改)。