【发布时间】:2014-04-27 04:36:09
【问题描述】:
假设我有三个实体(EntityA、EntityB、EntityC)可以有一些images。所以有两种方法:
为每个实体创建一个
image表。这意味着EntityA有一个名为AImages的image表,EntityB和EntityC也是如此。 这种方法更智能,但表格更多。有一个
image表和另一个表名EntityType。
EntityType 表有一个EntityTypeId 列和一个name 并有三个记录:1,EntityA、2,EntityB、3,EntityC。
然后在image 表中:
如果我为EntityA 保存记录,image 表中的记录将是:1,1,name
第一列是ImageId,第二列是EntityTypeId,第三列是image's filename。
如果我为EntityB 保存记录,image 表中的记录将是:2,2,name
如果我保存EntityA 的记录,image 表中的记录将是:3,3,name
在这种方法中,表的数量会减少,但查询会更长。
哪一个是优化的还是其他方式...
【问题讨论】:
标签: sql sql-server database-design relational-database query-optimization