我有一个实体可以将其称为Response
,另一个名为ResponseType
,Response
实体的实体包含ResponseType
。
因此,当我构建物理模型时,我对如何实现它感到困惑。
我有两个选择:
Response
创建一个ResponseType
表。Response
列创建全局ResponseType
表,并为每个ResponseType
创建一个分区。请注意,Response
每个ResponseType
实体都相同。每个ResponseType
都是等价的。
你的想法是什么?
答案 0 :(得分:0)
我认为没有理由创建单独的表。
您通常会创建一个Response
表,一个ResponseType
表,并在两者之间创建一个外键。像
CREATE TABLE ResponseType (
ResponseTypeId NUMBER PRIMARY KEY,
<<other columns>>
);
CREATE TABLE Response (
ResponseId NUMBER PRIMARY KEY,
ResponseTypeId NUMBER REFERENCES ResponseType( ResponseTypeId ),
<<other columns>>
);
如果您拥有企业版,并且您还获得了分区选项的许可,那么在查询ResponseTypeId
表时,您的查询将始终指定Response
,并且通常希望阅读所有Response
对于特定ResponseTypeId
而不是使用索引的行,分区Response
表可能会带来性能优势。但这是相当多的if
陈述。