布尔表sql最好的方法

时间:2013-05-06 16:57:08

标签: sql database database-design

我想存储病人的现状

  • 条目
  • 身体护理
  • High Medical

存储这样的布尔表的最佳方法是什么?

我在想

ID_STATUS   INT
ID_PATIENT  INT 
ENTRY       BOOL
BODY_TREATMENT  BOOL
HIGH_MEDICAL    BOOL

这是一个好方法还是仅需要如下表格?

ID_STATUS         INT
ID_PATIENT        INT
CURRENT_STATUS    VARCHAR

2 个答案:

答案 0 :(得分:1)

将您的CURRENT_STATUS种可能性存储在查找表中。您可以使用代理键。这是个人偏好,但应该遵循数据库的其余部分。

布尔列有点代码味道。像这样的“标志”通常可以重构为更好的关系结构。在你的情况下,如果两个状态同时为真,那会有意义吗?

答案 1 :(得分:0)

如果您不关心何时一种情况停止并且下一种情况开始,您只需要:

id_patient
id_situation

这当然过于简单了,因为患者可以有多次访问,每次访问都有自己的情况。