2012-11-07 167 views
1

我有那個數據庫圖(MySQL)。每個Book已分配BookLanguage。每個BookLanguage有兩個不同的LanguageNames(全球化的目的)。此外,每個Book可以有一個額外的BookLanguage(但它不是必需的)SQL查詢和字符串搜索

這就是問題所在 - 我在構建SQL查詢時搜索Books,在BookLanguageNames中有一些字符串。加入BookLanguageBookLanguageNames以構建查詢很簡單,但如何應對AdditionalBookLanguages

enter image description here

+0

你想要返回什麼數據?如果我們不知道你在找什麼,我們就無能爲力。 – sybkar

+0

我想獲得這些書籍,它們在BookLanguageNames的Name列中有一些字符串,並且在AdditionalBookLanguages – Tony

+1

中也有(如果存在)什麼是「BookLanguage」表中的「代碼」列?有必要嗎?爲什麼不在'BookLanguageNames'或'AdditionalBookLanguages'中? – GregD

回答

1

如何簡化了數據庫設計?有三個表BookBookLanguageName(兩者相似的結構,以你的)和,而不是AdditionalBookLanguageBookLanguage有一個「查找表」 - BookLanguage

  1. Book - 在這裏你將所有有關書籍的信息。
  2. BookLanguage - 只有三列:BookID,BookLanguageID(或Code)和一個布爾is_additional。 BookID和BookLanguageID將是一個複合主鍵。
  3. Language - 在這裏,您保留與特定語言相關的所有信息。

在這種情況下,寫入查詢會更容易。

+0

聽起來很有趣,我會考慮這個選項。感謝您的想法! – Tony

+0

不客氣,託尼!請稍後告訴我們您的最終解決方案。 – GregD