我们有一个场景,我们想要存储“状态”(例如“用户”)
我们希望对“用户”状态的允许值施加限制。
因此我们考虑了两种替代方案:
- 在“用户”表中将“状态”作为枚举类型的列
- 为“状态”建立一个单独的表,并在数据库初始化期间填充允许的值,并将其作为“用户”表中的外键。
您能否建议哪种方法更好以及为什么 感谢分享最佳实践的引用资料
最佳答案
枚举不太受欢迎。为状态制作一个单独的表。使用单独的表,可以轻松更改或添加状态、添加相关数据(如果将来需要,只需在状态表中添加一个新字段),轻松获取不同状态的列表。您还可以选择将主表中的状态字段设置为 NULL 或默认设置为其他值。您可以重复使用另一个表中的状态。
如果您只有两种状态,即“事件”和“非事件”,则只需在主表中使用 BOOL(或 TINYINT)字段类型。
关于mysql - 数据模型: Having separate table for a field vs having it as a column in the main table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51693283/