1

我们目前在我们的系统中有一个设置层次结构,它允许为单个用户保存设置,一个设置组(每个用户可以绑定到一个单独的设置组,但是设置组在一个嵌套集中,所以我们向上查询树检查从父设置组继承的值)或客户级别设置(每个用户可以绑定到一个客户)。

目前我们有三个表来存储每个级别的设置值:

  • user_setting_values
  • setting_group_setting_values
  • customer_setting_values

管理层(也是最初编写系统的那个家伙)要求我将这些表合并到一个包含所有设置的表中。除了“把它们都放在一张桌子上是有意义的”之外,他还没有提出一个特别好的论据来做这件事。

这是个好主意吗?优缺点都有什么?

4

1 回答 1

0

优点:更少的表缺点
避免空值总是一个好主意,合并不同的级别通常会导致空值

如果合并到一张表中,则通常有两种实现解决方案

  1. 如果每个级别的设置类型相同,则使用类型列,值反映与哪个级别数据相关,例如用户、组或客户。

  2. 如果每个级别的设置类型不同,则扩展列数

Null 用于指示给定列的 N/A 值

如果设置是类型是/否,则将值存储为布尔值可能会很方便。

于 2013-02-17T14:10:46.663 回答