【发布时间】:2010-10-26 22:27:29
【问题描述】:
我有许多表,它们的大部分列值都使用 Lookup/Enum 引用。
例如:
人员表 - PersonID |比赛代码 |头发颜色代码 |发型代码 |牙齿状况代码
位置表 - LocationID |尺码 |外观颜色代码 |条件码
Race、Size、Color、Condition 等内容只是对代码查找表的外键引用。此代码表有其他字段,但对我的问题并不重要。该数据库用于 SaaS 应用程序,这意味着每个客户都可以拥有自己的颜色、种族、条件等列表。有些代码是静态的,客户无法更改。
是有 1 个代码表还是 2 种代码表更好(DynamicCodeTable 用于客户定义的代码表,StaticCodeTable 用于更改的代码表)还是我应该为每种代码类型(RaceCodeTable、HairColorTable、Condition 等)都有一个表?
我最担心的是所有的sql连接。我正在使用的 Person 表有 20 多个这样的代码属性。加入 20 个不同的表 VS 加入同一个表 20 次时,性能是否存在差异?拥有多个表意味着每个表会更小,并且查找“应该”花费更少的时间。但是拥有一张桌子也可能很快。有什么建议吗?
【问题讨论】:
标签: database-design saas