子关系: [Parent] 1-----* [Children] 现在每个 parent (妈妈或爸爸)在有 child 的-6ren">
gpt4 book ai didi

sql - 数据库父 -> 子 "firstborn"关系

转载 作者:行者123 更新时间:2023-12-04 03:06:30 25 4
gpt4 key购买 nike

我有一个数据库设计问题。为了说明我的问题,请想象以下情况:

一个简单的父->子关系:

[Parent] 1-----* [Children]

现在每个 parent (妈妈或爸爸)在有 child 的时候都有第一个 child 。我需要在数据库中从父级到长子级建立牢固的关系

[Parent] 1-----1 [Children]

我可以简单地将 FirstbornChildId 添加到父表,但我不喜欢这种方法,因为它可能导致数据不一致。 (FirstbornChildId 链接到一个 Child,而 ParentId 链接到另一个父...)

Entity Framework 应该映射关系,以便每个父实体都有一个链接到特定子实体的 FirstbornEntity 属性。

有什么好的方法可以在 Microsoft SQL 2008 R2 中实现这一点?

最佳答案

我觉得你的方法很好。您必须防止应用程序层中的数据损坏。数据库约束只能做这么多。您至少可以为 FirstbornChildId 设置一个外键,以确保 child 确实存在(无论 parent 是谁)。

这个“长子”属性无论如何都是非规范化的:它可以从 child 的“生日”属性中派生出来。感谢您出于性能原因明确存储它,并且没有问题。但是,如果您想让数据库完全处理完整性,这确实会让事情变得棘手。

关于sql - 数据库父 -> 子 "firstborn"关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11119504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com