sql – 向数据库中的所有表添加位掩码是否有用?

前端之家收集整理的这篇文章主要介绍了sql – 向数据库中的所有表添加位掩码是否有用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一位同事正在为我们所有的数据库添加一个掩码.从理论上讲,我们可以跟踪整个系统中每行的某些属性.例如…

>该行是随系统一起提供的,还是客户在开始使用系统后添加
>是否已从表中删除该行(软删除)
>该行是一组行中的默认值

这是一个好主意吗?这种方法有益于其他用途吗?

我的偏好是这些属性显然很重要,并且为每个属性设置专用列是合理的,以使其他开发人员更清楚地了解它.

解决方法

不是,不是.

您只能在其中存储位,而且只能存储很多位.因此,在我看来,它似乎要求在以后跟踪每个人的意思和潜在的滥用之后会有很多应用程序级别的麻烦,因为“嘿,他们无处不在”.每个表上的每个位掩码是否会对每个位使用相同的定义?每张桌子都不一样吗?当你用完比特时会发生什么?加上另一个?

你可以用它做很多潜在的事情,但它引出了一个问题:“为什么这样做而不是确定我们现在将使用这些比特,只是让它们成为合适的列?”无论如何,你并没有真正规避架构更改的可能性,因此它似乎正在尝试解决一个你无法真正“解决”的问题,特别是不能使用位掩码.

你提到的每一件事都可以(并且应该)用数据库上的真实列来解决,而且这些事物比“BitMaskOptions字段的第5位”更加自我记录.

猜你在找的MsSQL相关文章