当我有固定数量的字段可能值时,我应该在 MySQL 中创建一个单独的 table 吗?

Should I create a separate table in MySQL when I have fixed number of possible values for a field?

我正在做一些数据库优化,我正在徘徊,如果我有一个table Users,而那个table有一个_status字段,我应该为状态代码创建一个单独的 table,如下所示:

Table statuses:
    _status_id: PK int(16) Ai,
    _status_name: varchar(32)

然后在 Users table 中有一个 status_code_id 字段链接到 statuses table 的 _status_id 字段,或者直接在 User?

中写入 _status_name

我应该注意状态的数量是固定的,我不打算添加任何关于状态的额外数据,如状态描述或状态代码或类似的东西。它总是有 4 种状态——活跃、不活跃、离开、忙碌。

我认为,如果我在做某种 get by status query,如果将它们分成 2 table,那么它会花费更长的时间,如果它是一个 table .

视情况而定:

这个 status 在您的申请中重要吗?它用于许多逻辑吗?那么它应该有一个单独的table,因为它会减少应用程序中的硬编码。

在理论上也应该是一个单独的 table,因为它代表了一个定义明确的实体。 (恕我直言)