【发布时间】:2012-01-15 10:50:29
【问题描述】:
我长期使用 XML 和分层数据库,在这些数据库中所有权很容易确定。现在我正在尝试一个关系数据库模型,其中我有一个运行时上下文,我正在加载具有唯一 ID 和关系属性(如 ProductId 等)的实体。
我的问题是如何为这个模型添加某种所有权?如果我想定义一个关系,其中目标实体是实体的拥有父级。如何将这种差异定义为引用关系并将其保存在 SQL 数据库中,并使用最少的额外信息? SQL (MS) 中是否支持定义关系类型?
最后,我想要的是能够确定在删除其他实体(所有拥有的实体)时要删除哪些其他实体。此外,当将此实体序列化为 XML 时,我想将引用的实体序列化为普通的 id 元素,并将拥有的实体序列化为完整的 XML。
<Notebook Id="1">
<LibraryId>5</LibraryId> <!-- Referenced entity -->
<AuthorId>6</AuthorId> <!-- Referenced entity -->
<Notes> <!-- Owned entities -->
<Note Id="2" />
<Note Id="3" />
<Note Id="4" />
</Notes>
</Notebook>
Note-entity 通常与 Notebook 分开存储在其自己的带有 NotebookId 列的 SQL 表中。但是如何将此列定义为自有关系?我想我可以称它为 OwnerId 或 OwningNotebookId,然后只分析列的名称。但我希望有更好的方法。你有什么建议?
【问题讨论】:
标签: .net sql entity entity-relationship ownership