gpt4 book ai didi

MySQL 三态属性

转载 作者:搜寻专家 更新时间:2023-10-30 20:14:24 25 4
gpt4 key购买 nike

这是一个关于良好数据库设计的问题,我想不出很多方法来实现它,但我想出的方法很可能是糟糕的数据库设计(我不想成为被 C.J. Date 骂)。我想在我的 MySQL 数据库中为检查表中的检查项目设置一个表。用户在完成所有检验项目前,可多次保存检验单。因此,每个项目都可以处于“未检查”状态或“已检查”状态。如果一个检查项目已经检查过,它必须有一个“通过”或“失败”的值。

最初我打算使用一个允许 NULL 的 bool 属性,我打算让 NULL 代表“未检查”状态,认为 NULL 意味着属性的值(通过/失败)是未知的。但是观看有关数据库设计的视频和阅读书籍,我被引导相信使用 NULL 来表示状态或值是糟糕的设计。我认为使用两个属性(检查并通过)或使用三值 ENUM 也不是好的数据库设计。

这可能是一个非常初级的问题,我可能只是把事情复杂化了。

最佳答案

我认为将“通过”/“失败”列设置为 NULL 表示状态尚未分配,这没有任何内在问题。事实上,我可以看出它有一定的优雅之处,假设这些值有很好的记录,这样用户就知道他们得到了什么。

也可以使用enum。不过,老实说,在使用枚举时,我经常需要查找可接受的值(是“通过”还是“通过”?)。位/ bool 类型使该过程更容易。

因此,我不会强调这个特定问题。如果

  • 1=通过
  • 0=失败
  • NULL=进行中

那么这是一个合理的解释。如果事情变得更复杂,您可能需要使用引用表(或枚举)。

关于MySQL 三态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51777732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com