我首先使用MVC 5进行EF 6代码。我的一个类有一个属性可能意味着三件事:
我的问题是,我应该使用什么?
我非常感谢你们的每一个意见。
答案 0 :(得分:0)
免责声明..我认为您建议将枚举作为列数据类型
以上都不是。
我使用tiny_int
被叫状态(或类似的东西)。
主要是为了灵活性..如果您需要数据库中的状态标题或需要为每个选项添加任何其他数据,您可以将其放在另一个表中并将其输入外键。如果您不需要在某处翻译数字。
另一种选择是将行动(答案)与州分开。
考虑一个答案表,其中一列表示确认或拒绝以及对原始表的引用。通过连接表格,可以分离出没有答案的原始行和已经确认/拒绝的行。
<强>更新强>
在回应Null的评论时,int
更加强大......
状态数据库表:
id, title, description, priority, cost... (attach extra data to the status)
或者在PHP伪代码中(没有表格):
$query = new Query('SELECT * FROM table WHERE status = :status');
$query->bind('status'=>TableClass::STATUS_ANSWERED)
我并没有建议你把这些数字翻译到各处......就在某个地方。
关于int
的最后一件好事是它将意义与工作区分开来......如果我想重命名其中一个enum
,该怎么办?我使用外键更改了一行,或者使用enum
更改了数百万。