我有一个要优化的database
(MySQL
)结构。
我们向客户出售不同的产品,产品的设置存储在名为ProductsSettings
的表中
在此表中,我们存储每种产品的默认设置(以P_开头的productNumber
,每个客户帐户(以A_开头的productNumber
和每个单独的许可证设置({{1} }以L_开头。
productNumber
客户的管理员用户可以在帐户级别和许可级别更改设置。
当用户登录到产品时,我们运行一个查询,该查询首先检查是否在许可级别(ProductsSettings
id productNumber date accountId setting1 setting2 etc
1 P_021545 XXX 1 10 60 ...
2 P_020455 XXX 1 10 60 ...
3 A_025225 XXX 12 30 20 ...
4 A_021345 XXX 13 NULL NULL ...
5 L_014445 XXX 24 20 50 ...
6 L_545545 XXX 77 NULL NULL ...
7 L_777545 XXX 50 NULL NULL ...
)上设置了设置;如果未设置,则查看帐户级别;如果未设置,则采用默认设置在产品级别设置。
因此,层次结构按以下顺序排列:
IS NOT NULL
还有另一种存储此类数据的方法,它更干净,更易于维护吗?