我是否需要在SQL中为布尔列提供引用表?

时间:2015-11-07 03:34:07

标签: mysql sql database database-design

如果我创建了一个关于具有布料状态(例如“is_vegan”)的tinyint列的用户的表,我是否需要提供一个参考表来解释这些值,或者它是否已经不言自明了?

1 个答案:

答案 0 :(得分:0)

如果您使用的是实际的布尔值(将数据类型设置为bit是强制执行此操作的一种好方法),那么您可以通过极具描述性的命名使字段具有相当的指导性。例如,如果表名为website_user且字段名为confirms_currently_vegan,那么您可能会将其解释为"我的网站用户在此类日期确认他们确实是素食主义者&# 34 ;.但是,当字段不具有描述性时,您应该警惕如何解释布尔表中的False值。如果它是假的,这是否意味着他们吃肉?或者那只是你的领域的默认值?

这并不意味着你不应该使用布尔,只是你应该考虑这两种状态可能代表的场景。

您可以在数据库中使用描述性命名方面走得很远,但总是会达到您希望以数据库不足以支持的方式记录某些内容的程度。我建议使用格式化的数据字典,而不是试图将所有描述存储在数据库中,因为这会简化您的数据模型,并使您的数据不太明确(在我看来)。