2012-03-05 53 views
-1

我有3個表有條件SQL分組表結構加入諮詢

1)Photos (PhotoId,Title, CreatedById,etc...)

2)Stories (StotyId,StoryDesc,CoverPhotoId,CreatedById,etc...)

3)Groups (GroupId,GroupDesc,CreatedById)

現在我想在那裏我可以創建一個表存儲組的內容。每個組可以有1或mroe照片和故事。我將如何儲存?如果我只用表這樣

GroupContents (Id,GroupId,ItemId,ItemType) 

哪裏將存儲StoryId或PHOTOID在ITEMID列以及將任「故事」或「照片」中的ItemType列。

當我編寫一個查詢來獲取組的內容時,我應該添加一個條件連接嗎?即;如果ItemType是「Story」,則從Story表加入,Else從Photos表加入?由於在兩個表格

中存在相同的故事ID和PhotoId作爲其標識列,因此處理此情形的最佳方法是什麼?我應該創建2個獨立的表格,如GroupPhotos(GroupId,PhotoId)GroupStories(GroupId,StoryId)

回答

2

處理這種情況的最佳方法是什麼?我應該創建像GroupPhotos(GroupId,PhotoId)和GroupStories(GroupId,StoryId)兩個獨立的表嗎?

是的,正好。

然後,你只要做羣組LEFT JOIN GroupPhotos LEFT JOIN GroupStories