为多个表创建公共相关表是否好方法?
问题描述:
我正在为我的一些web应用程序计划db。我发现几张桌子的一张桌子很混乱,例如:
表users
,travels
和groups
的每一行都需要几张图片。因此,我创建了一个表images
,每个表都带有外键,如果某个新表需要多个图像,我将创建从image
到此表的新链接。
或者为每个表格创建独特的表格如users_images
,groups_images
等等是更好的方法吗?
对不起,如果我的问题看起来太宽泛,我只是ORM人谁寻找计划井分贝计划的最佳做法。为多个表创建公共相关表是否好方法?
答
你应该使用类似
现有表
- 用户(ID,姓名,...)
- 旅游(ID,说明,...)
- 集团(ID ,名称,....)
现在,您创建一个表IMAGE(ID,Image_Blob,...)
个和映射表像
- UserImage(用户ID,图像标识)
- TravelImage(TravelID,图像标识)
- GroupImage(组ID,图像标识)
与外键约束的所有列和指数。
优点:
- 您可以将一个图像映射到多个实体
- 您可以添加特定的元信息(谁挂这个当,评论,...)
也许你会得到建议,使用一个通用的映射表,并在其中添加源表的名称的另一个LinkingTo
列。但是这样做,你不得不用外键限制。
这几乎是一个一般的规则:好数据库有许多表 :-)