【发布时间】:2015-10-06 19:41:36
【问题描述】:
假设您有三种不同类型的数据库实体
COUNTRY (TABLE)
id | name | system_field (boolean)
当system_field=true 系统不允许任何人删除该行时。例如开箱即用的系统提供了一些国家(例如美国、英国等~没有人可以删除)
同样
ROLE (TABLE)
id | name | system_field (boolean)
1 | Admin| true
2 |Role2 | false
任何人都不能删除system_field 标志为真的角色。此类限制/验证处于应用程序级别。
对于其他类型的数据库实体,需要这样的“system_field”越来越多,感觉就像在许多表中重复system_field 列。请注意,这些数据库实体彼此不相关。有没有更好的方法来对这样的列 (system_field) 进行建模,以便它可以轻松地用于未来的表,而无需 ALTERing 现有表添加 system_field 布尔列?
【问题讨论】:
-
这并没有错。但是,我更喜欢描述性更强的名称,例如
is_system_generated或is_deleteable(如果这是专栏的唯一目的)。system_field可能意味着任何东西 -
@a_horse_with_no_name 我完全同意。
-
另外,
system_field是自引用的。system_tuple或system_row至少会说些什么,但我同意可能有更好的名字。
标签: sql postgresql database-schema