我使用 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,然后只分析列的名称。但我希望有更好的方法。你有什么建议?