|
|
1
5
|
|
|
2
2
或者,您可以为具有历史价值的数据维护一个人员历史表。通过这种方式,您可以保持“人和狗”表的整洁,参考文献简单,但也可以访问历史上有趣的信息。 |
|
|
3
1
好吧,首先你需要规范化你的表。谷歌“数据库规范化”,你会得到很多阅读材料。PERSONS表尤其需要注意。 第二件事是,当你创建外键引用时,99.999%的时间你想引用一个ID(数字)值。即[狗]。[所有者]应指[个人]。[id]。 编辑:添加一个示例模式(原谅松散的语法)。我假设每只狗只有一个主人。这是 实现人员历史的方法。并非所有列都为空。
|
|
|
4
0
我会使用关联表将多个版本链接到一个pk。 |
|
|
5
0
在您的示例中,这将转换为一个详细信息表(detailsid,otherldetails列)、一个名为DetailsVersion的链接表(detainsid,personid)和一个Person表(personid,不变数据)。把狗和人联系起来。 |
|
|
6
0
狗
带狗的人
UID,
编辑:您必须加入PersonWithDogs、PersianVersionInfo、Dogs才能获得完整的图片(截至今天)。这种结构将帮助您将狗链接到所有者(具有特定版本)。 如果该人的信息发生变化,而您希望获得与该狗相关的最新信息,则必须更新PersonWithDogs表,以获得给定狗所需的UID(该人的)。
您可以设置限制,例如DogID在PersonWithDogs中应该是唯一的。
您的场景(可以更改/限制等)将有助于更好地设计模式。 |
|
|
7
0
在PERSONS表中,我们只留下名称(唯一标识符)和链接 当前的 个人数据:
我们创建了一个新表PERSONS_DATA,其中包含该人的所有数据历史记录:
DOGS表保持不变,它仍然指向一个人的名字(FK到PERSONS表)。
|
|
|
8
0
在PERSONS表中,我们只留下名称(唯一标识符)和指向 第一 (非最新!)个人数据:
我们创建了一个新表PERSONS_DATA,其中包含该人的所有数据历史记录:
DOGS表保持不变,它仍然指向一个人的名字(FK到PERSONS表)。
你怎么认为? |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |