在查询的性能或优化方面,不同的表和类型列之间存在差异吗?
例如:
Create Table AllInOne(
Key Integer Identity Primary Key,
Desc varchar(20) Not Null,
OneType Integer Not Null
)
其中 OneType 仅接收 1,2 或 3。(整数值)
与以下架构相比:
Create Table One(
Key Integer Identity Primary Key,
Desc varchar(20) Not Null
)
Create Table Two(
Key Integer Identity Primary Key,
Desc varchar(20) Not Null
)
Create Table Three(
Key Integer Identity Primary Key,
Desc varchar(20) Not Null
)
另一种可能的架构:
Create Table Root(
Key Integer Identity Primary Key,
Desc varchar(20) Not Null
)
Create Table One(
Key Integer Primary Key references Root
)
Create Table Two(
Key Integer Primary Key references Root
)
Create Table Three(
Key Integer Primary Key references Root
)
在第三种方式中,所有数据都将设置在根中,并与一、二和三表的关系。
我前段时间问过我的老师,他无法回答是否有任何区别。假设我必须在这三种方法之间进行选择。
假设常用查询正在过滤类型。并且没有引用这些的子表。
为了更容易理解,让我们考虑一个工资系统。
一 = 收入
二 = 折扣
三 = 计算基础。