我有那个数据库图 (MySQL)。每本 Book
都分配了一个 BookLanguage
。每个 BookLanguage
都有两个不同的 LanguageNames
(全局化目的)。而且,每本 Book
都可以有一个额外的 BookLanguage
(但这不是必需的)。
这就是问题所在 - 我在构建用于搜索 Books
的 SQL 查询时被困在这里,它在 BookLanguageNames
中有一些字符串。通过连接 BookLanguage
和 BookLanguageNames
构建查询很简单,但是如何处理 AdditionalBookLanguages
呢?
最佳答案
如何简化数据库设计?有三个表 Book
,BookLanguageName
(它们的结构都与你的相似),而不是 AdditionalBookLanguage
和 BookLanguage
有一个“查找表” - BookLanguage
:
Book
- 此处保存有关书籍的所有信息。BookLanguage
- 只有三列:BookID、BookLanguageID(或代码)和一个 bool 值 is_additional。 BookID 和 BookLanguageID 将是复合主键。Language
- 您可以在此处保存与特定语言相关的所有信息。
在这种情况下,编写查询会更容易。
关于mysql - SQL 查询和字符串搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270431/