我们目前在我们的系统中有一个设置层次结构,允许为单个用户,一个设置组保存设置(每个用户可以绑定到一个设置组,但设置组是嵌套的,所以我们查询在树上检查来自父设置组的继承值)或客户级别设置(每个用户可以绑定到一个客户)。
目前我们有三个表存储每个级别的设置值:
user_setting_values
setting_group_setting_values
customer_setting_values
我被管理层(也是最初编写系统的家伙)要求将这些表合并到一个包含所有设置的表中。除了“将它们全部放在一张桌子中是有意义的”之外,他没有提出一个特别好的论据。
这是一个好主意吗?什么是专业人士和骗子?
答案 0 :(得分:0)
Pro:减少表格 Con:总是一个避免空值的好主意,使不同级别合并通常会导致空值
如果合并到一个表中,通常有两个实现解决方案
如果每个级别的设置类型相同,则使用类型列,值反映了与哪个级别数据相关,例如,用户,团体或客户。
如果每个级别的设置类型不同,则展开列数
Null用于表示给定列的N / A值
如果设置类型为yes / no存储值,则布尔值可能很方便。