我有那个数据库图(MySQL)。每个Book
都分配了BookLanguage
。每个BookLanguage
都有两个不同的LanguageNames
(全球化目的)。而且,每个Book
可以有一个额外的BookLanguage
(但不是必需的)。
这就是问题所在 - 我在构建SQL查询以搜索Books
时遇到了问题,BookLanguageNames
在BookLanguage
中有一些字符串。通过加入BookLanguageNames
和AdditionalBookLanguages
来构建查询很简单但是如何应对{{1}}?
答案 0 :(得分:1)
如何简化数据库设计?有三个表Book
,BookLanguageName
(两者都与您的结构相似)而不是AdditionalBookLanguage
和BookLanguage
有一个“查找表” - BookLanguage
:
Book
- 在这里您可以保存有关这些书籍的所有信息。BookLanguage
- 只有三列:BookID,BookLanguageID(或Code)和布尔值is_additional。 BookID和BookLanguageID将是一个复合主键。Language
- 在这里保存与特定语言相关的所有信息。在这种情况下,编写查询会更容易。