2、可以ID和名称都存,ID占用不了多少空间,以便后续名称更改是进行修改名称,如果访问量大,适当的冗余还是很有必要的,减少了表连接,可以明显提高查询效率,没有必要遵守严格的范式
目前数据库中大约有100
张表,
1)
其中一张是用来保存产品类型的
table1
。例如ID
|
typeint
|
varchar(500)
2)
每个类型的产品会有不同的相关信息,table3
这些信息对应了其余的多张表,但是每个表的结构相似,最多4
个字段,例如
ID
|
data1
|
data2
|
table2_FK
3)
另外一张表是用来保存所有类型的具体产品的名字的,
table2
ID
|
name
|
table1_FK
int
|
varchar(500)
|
引用这应该把table2
table3
这种表合并为一张表
就这么用两张表差不多吧,
保存产品类型的
table1
1对多个产品
ID
data1
data2
data3
data4
type
table1_FK
data1,data2
属于一张表
data3,data4
属于一张表
显然这样做效果不是很理想啊,因为表很多,这样定义的话在新表中大概就会有很多字段啊
引用这个问题一定会存在的,如果你要减少表的数量,一定不可避免地要多出一些冗余字段,
没有哪个系统的数据库表设计得有很完美的,
有些东西没法都是最好的,比如,你要查询的性能,就得减少表的联查询,
要减少表自然就要看需求满足再合并一些表,自然就有了冗余字段,
只是想办法找到一个性能和冗余字段的平衡点,也就是最佳结合,这是要不断去试的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)