2013-07-31 68 views
0

部屋我是新來的SQL東西 我試圖做一個博客 的計劃是這樣 一個博客只能有一個作者 其中一個作者可以有多個博客 和一個博客可以有多個圖像SQL關係

任何人都可以讓我明白這個關係將如何與此sql映射?

+0

我忘記告訴一件事 一個博客將有多個圖像和簽證詩 這是一個單一的圖像也可以用在多個博客... 那麼我將如何設置關係? – user2631770

回答

1
Create table Author 
(
Id int 
, Name nvarchar(max) 
); 

Create table Image 
(
Id int 
,ImagePath nvarchar(max) 
); 

Create table Blog 
(
Id int 
,Name nvarchar(max) 
,AuthorId int 
); 

Create table BlogImages 
(
Id int 
,BlogId int 
,ImageId int 
); 

ALTER TABLE Blog 
ADD FOREIGN KEY (AuthorId) 
REFERENCES Author(Id); 

ALTER TABLE BlogImages 
ADD FOREIGN KEY (BlogId) 
REFERENCES Blog(Id); 

ALTER TABLE BlogImages 
ADD FOREIGN KEY (ImageId) 
REFERENCES Image(Id); 

在上述關係,我們有具有blogIdImageIdBlogImages,這意味着單個imageID可以有多個blogIds,使用滿足您的要求相同的圖像,從而多個博客

+0

我忘了告訴一件事 一個博客將有多個圖像和簽證詩 這是一個單一的圖像也可以用在多個博客... 那麼我將如何設置關係? – user2631770

+0

上述表格結構完全符合您的要求.. – Bharadwaj

+0

我們已經在上述結構中給出了ImageId映射到單獨表格中的BlogId ..因此單個映像可以存儲多個blogId,因此滿足您的要求。單個圖像也可以在多個博客中使用 – Bharadwaj

1

作者---->博客------->圖片..

讓我來解釋該計劃一點點。

將有一個表作者具有作者的所有細節。 PK是author_id。 博客表將具有博客的詳細信息。 Blog_id是PK,並且將具有由作者表引用的外鍵author_id。 圖像表將具有圖像的細節。 image_id是PK,並且將具有由博客表引用的外鍵blog_id。

的行爲被稱爲one to many relation

+0

謝謝,但我將如何映射? – user2631770

+0

我的意思是一個博客可以有單個作者..但是一個作者可以有多個博客..那麼它會是什麼類型的關係? – user2631770

0

使用ID設置作者表。在您的博客表中爲博客使用唯一的ID,並將作者ID包含在列中。最後,在圖片表中包含博客ID以及作者ID。你應該得到這樣的東西:

Author id -------------> Blog Id -------------->Image ID 
Other Author details  AuthorID    Blog Id 
         Other Blog details  Author ID 
               Other Image data 

有了這個,你可以在作者ID或博客ID上使用SQL Join來獲取下一個表中的數據。