当我有固定数量的字段可能值时,我应该在 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,因为它代表了一个定义明确的实体。 (恕我直言)
我正在做一些数据库优化,我正在徘徊,如果我有一个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?
我应该注意状态的数量是固定的,我不打算添加任何关于状态的额外数据,如状态描述或状态代码或类似的东西。它总是有 4 种状态——活跃、不活跃、离开、忙碌。
我认为,如果我在做某种 get by status query
,如果将它们分成 2 table,那么它会花费更长的时间,如果它是一个 table .
视情况而定:
这个 status
在您的申请中重要吗?它用于许多逻辑吗?那么它应该有一个单独的table,因为它会减少应用程序中的硬编码。
在理论上也应该是一个单独的 table,因为它代表了一个定义明确的实体。 (恕我直言)