我正在使用 ASP.NET MVC 编写一个小型应用程序只是为了好玩,但是我在掌握如何设计一对多关系的一个特定变体时遇到了问题。由于我使用的是 LinqToSQL,我想它更多的是关于设计表而不是我的 C# 代码,但我提到它是为了以防数据的使用方式可能会影响设计。
我遇到的问题是:
假设我想创建一个图书数据库,假设每本书可以分配多个名称(例如标题的翻译)。其中一个标题必须是主要标题。
对我来说,显而易见的解决方案是为书籍制作一张桌子,为名字制作另一张桌子。名称获得 BookId 列,书籍获得 MainNameId 列,并在此之上设置外键,因此当在我的应用程序中生成模型时,关系已正确设置。
但是我的逻辑失败了,因为我将无法在没有标题的情况下添加书籍,并且如果没有数据库中的相关书籍,我将无法添加标题。假设将一本书添加到数据库中也会添加第一本(和主标题)。
无论如何,我可以想到一些解决这个问题的方法,但我想知道解决这个问题的正确方法是什么。