您如何称呼布尔表?

时间:2018-09-11 17:53:52

标签: mysql sql

我目前正在处理一个表,该表很可能仅包含将与用户类型相关联的布尔列(例如isAdminisThisRolehasThisPrivilege等)。表,我想知道这种表模式是否有特定名称?

2 个答案:

答案 0 :(得分:3)

我从没听说过那种桌子的具体名称。

我能想到的最接近的是 properties ,但是属性通常包括其他标量,而不仅仅是布尔值。

我将其称为属性表,其中所有属性恰好都是布尔值。

答案 1 :(得分:0)

我觉得如何引用此表并不重要,因为这种类型的表会在以后给您带来麻烦:每次您需要添加新的用户属性时,您将拥有创建一个新列,该列可能很快导致性能方面的噩梦(您的表将占用大量空间),查询(您需要再次检查哪个列?)和维护。

您可能要考虑使用实体-属性-值方法(例如,拥有一个RolesAndPriveleges表,并拥有一个中间表(UserRoles),该表同时具有用户和角色的外键/ privelege。这样,您不必执行DDL语句即可添加新角色/特权。

有关更多信息,请参见https://sqlblog.org/2009/11/19/what-is-so-bad-about-eav-anyway