2016-03-04 23 views
0

我正在創建食譜應用程序和我從數據庫獲得的所有食譜。我正在使用phpMyAdmin。簡單的數據庫應該如何看起來像兩個表?

我之前幾乎沒有關於數據庫的類,所以我知道如何將它用於簡單任務。

現在我有兩個表RecipesIngredients。我有兩個簡單的問題:

  1. 我應該創建單獨的recipe id還是使用自動分配的那個? 我將在應用程序中搜索食譜,並從列表中選取結果。

  2. 我應該如何連接Ingredients表每Recipe表。 我認爲我應該在IngredientRecipe表中使用相同的ID(「reciep_id」),以便在顯示結果後再連接它們。

回答

2
  1. 我認爲標準配方ID可以接受的變種,因爲我無法想象配方自然主鍵。

  2. 每個食譜都包含一些食材。任何配料都可以用於多種配方。所以你應該使用鏈接表的標準n-n關係。

你的表可以是這樣的(link to sqlfiddle with this code):

CREATE TABLE Recipes (
id int, 
name text, 
PRIMARY KEY (`id`) 
); 

CREATE TABLE Ingredients(
id int, 
name text, 
PRIMARY KEY (`id`) 
); 

CREATE TABLE Recipes2Ingredients (
rec_id int, 
ing_id int, 
amount int, 
-- and maybe some other needed fields 
FOREIGN KEY (rec_id) 
    REFERENCES Recipes(id), 
FOREIGN KEY (ing_id) 
    REFERENCES Ingredients(id) 
); 
+2

我同意,但你應該增加更多的一些屬性'Recipes2Ingredients',像'amount'。例如,對於配方#1,您需要一個洋蔥(=配料),配方#2需要五個洋蔥。 – PerlDuck

+0

非常感謝,你是對的。我修復答案。我很少做飯:)所以我不使用食譜很多。 –

+1

不客氣。我做飯,這可能就是我想到的原因。除此之外,你的答案對我來說看起來很合理。人們可以想象一個像「組合」(如豬肉,麪條,素食......)的「食譜」的父表,但這超出了OP的問題。 – PerlDuck

相關問題