2013-12-09 72 views
-1

我不知道如何創建這樣的數據庫 例如我有很多項目類別 而我有人表,他們擁有一些項目。Sql-server如何存儲數據庫與這種關係

果實表:

ID項

1蘋果

2葡萄

3櫻桃

小吃表:

ID項

1芯片

2熱狗

Person表

ID名稱

1詹姆

2傑克

我要創造這樣

詹姆斯有蘋果,芯片 傑克有蘋果,熱狗

所以,請建議我一些方法來創建這個數據庫

非常感謝您的任何答案

回答

0

這是多對多的關係(一個人可以有多個項目,每個項目可以由多個人擁有)。但首先,我不認爲有必要有兩個小吃和水果表。你最好將它們合併並添加'type'。就像這樣:

create table Food (
    id int, 
    item varchar(255), 
    typeid int 
); 
create table FoodType (
    id int, 
    type varchar(255) 
); 

然後,你就必須添加中間表用於存儲個人和食物的id:

create table FoodPerson (
    PersonId int, 
    FoodId int 
); 

樣品從這種結構選擇是:

select 
    p.Name, f.Item, t.Type 
from Person p 
join FoodPerson fp 
    on p.id=fp.personid 
join Food f 
    on f.id=fp.foodid 
join FoodType t 
    on t.id=f.typeid 
0

我認爲弗裏克是對的。

否則您必須創建另外兩張表,如PersonFruit和Personsnack。 但如果你的類型(如蔬菜)增加一個這樣的表。

所以我認爲我去與frikozoid答案。

相關問題