【发布时间】:2013-01-23 06:37:00
【问题描述】:
与Should I delete or disable a row in a relational database?关系不大
鉴于我将采用在历史表中对我的表进行仓库更改的策略,我面临以下选项来为 MySQL 中的给定行实现状态:
- 一个
isActivebooelan -
activeStatus枚举 - 一个
activeStatusINT 引用一个小的ActiveStatus查找表 -
activeStatusINT 未引用另一个表
在我看来,第一种方法相当不灵活,因为将来我可能需要更多布尔值来支持其他类型的活动状态(我不确定它们会是什么,但可能类似于“被逐步淘汰”或“对随机的一组用户有效”等)。
听说 MySQL 枚举不好,所以第二种方法可能行不通。
我喜欢第三种方法,但我想知道它对于一个相对较小的问题是否是一个严厉的解决方案。
第四种方法要求我们提前知道每个状态 INT 的含义,并且似乎是一种过时的做事方式。
有规范的正确答案吗?我是否忽略了另一种方法?
【问题讨论】:
标签: database database-design data-warehouse