我正在嘗試構建一個存儲食物食譜的Java程序。該程序應該能夠存儲,搜索和更改存儲在數據庫中的食譜 。目前我使用的是Access 2003,因爲我習慣了它,但我很可能會在以後使用MySQL。新手數據庫:同一個表的外鍵?
這裏的問題很可能是非常基本的,但是我遇到的問題是實現我的邏輯模型,我想知道如何解決這個問題,或者是否有更好的方法來做到這一點。
所以,這裏的東西,這裏有一個具體的例子: 我想存儲數據庫中的成分,如「胡蘿蔔」。 但是很多項目都有其他名稱,特別是因爲我甚至沒有英文,所以: 假設胡蘿蔔是英文的胡蘿蔔。 現在胡蘿蔔是我的語言中的「Morot」。我可能會後來看Jamie Oliver的節目,他把胡蘿蔔叫做「shapdoodles」或其他東西。
我想存儲這些成分的原因是因爲如果我添加這三個食譜,然後再搜索「胡蘿蔔」,我希望該程序不僅列出涉及 胡蘿蔔的食譜,還包括morot和shapdoodles,因爲, ,他們也是胡蘿蔔,只是不同的名字!
聽起來很簡單,起初我認爲這只是一個簡單的表格「成分」與一個文本字段。 文本將是一個主鍵,它將存儲配料名稱,如「胡蘿蔔」或「沙皮面」。 此表格將與表格「Ingredientlist」和Ingredientlist關聯起來,導致「RecipeDescription」等。
我假設我可以簡單地添加另一個帶有兩個文本字段,名稱和備用名稱的表格,並且只需將Ingredient的文本字段作爲這兩個文本字段的外鍵,並將這兩個文本字段一起用作表格的主鍵。 我有點想這種結果的:
AlernateIngredientTable:
carrot shapdoodle
carrot morot
等等......所以,當後來我可以簡單地發送查詢,發現該表中所涉及的一切「胡蘿蔔」,並從那裏找到與胡蘿蔔或沙拉醬或三明治有關的食譜。
那麼,因爲我不能將相同的外鍵添加到表中的兩個字段,我有點失落!
看起來您正在尋找一個本地化解決方案,而不是您想要能夠擁有其他「上下文」來決定應該與實體關聯的名稱的語言環境。這可能會幫助你: http://stackoverflow.com/questions/316780/schema-for-a-multilanguage-database – marko