我有3张桌子
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列中存储StoryId或PhotoId,并在ItemType列中存储“Story”或“Photo”。
当我编写查询以获取组的内容时,我应该添加一个条件连接吗?即;如果ItemType是“Story”,则从Story表加入,Else Join from Photos表?因为同一故事ID和PhotoId作为两个表中的标识列存在
处理此方案的最佳方法是什么?我应该创建2个单独的表格,例如GroupPhotos(GroupId,PhotoId)
和GroupStories(GroupId,StoryId)
吗?
答案 0 :(得分:2)
处理此方案的最佳方法是什么?我应该创建2个单独的表,如GroupPhotos(GroupId,PhotoId)和GroupStories(GroupId,StoryId)?
是的,确实。
然后你就做组LEFT JOIN GroupPhotos LEFT JOIN GroupStories