在数据库中创建 1 长度的 long var char 没有意义吗?

发布于 2024-11-02 00:57:25 字数 149 浏览 0 评论 0原文

我想在数据库中存储用户状态,因此,我将使用字符来存储状态,例如“活动”、“非活动”、“关闭”。我将用“a”、“i”、“c”来代表这些状态。但是将 varchar 存储在数据库中是没有意义的吗?我应该使用字符类型还是集合?

**mysql中的数据库。

I would like to store a user status in the database, so, I will use a char to store the status, for example, "active", "inactive", "close". I will use "a", "i", "c" to represent these status. But it is non-sense to store a varchar in database? should I use a char type or set?

**the database in mysql.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倾听心声的旋律 2024-11-09 00:57:25

您可能需要考虑使用 int 或 enum 代替。如果您确实想要 char 类型,则 CHAR(1) NOT NULL 应该没问题。对于枚举,它将是:

status ENUM('active', 'inactive', 'close')

对于 int:

status tinyint

使用 int 是一个不错的选择,但记录值。

You may want to consider using an int or an enum instead. If you do want a char type, CHAR(1) NOT NULL should be fine. With an enum, it would be:

status ENUM('active', 'inactive', 'close')

With an int:

status tinyint

Using an int is a good option, but document the values well.

陌路黄昏 2024-11-09 00:57:25

需要注意的一件事是,向枚举添加新值需要重写整个表。我通常建议存储 CHAR 或 VARCHAR。如果您想要枚举的另一方面,即要求值是列出的值,则可以将 FK 引用添加到合法值表中。然后,可以通过向 FK'ed 表添加另一个值来扩展“几乎枚举”。

One thing to beware of is that adding a new value to an enum requires rewriting the entire table. I generally recommend storing CHAR or VARCHAR. One can add a FK reference to a table of legal values if you want an other aspect of enums, that of requiring the value to be a listed one. Then the 'almost enum' can be extended by adding another value to the FK'ed table.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文