数据库设计的5种常见关系
数据库设计的5种常见关系,其中本文主要讲“多态”关系结构,以手机为例。
1,配置关系 --和其他表无任何关系的表。
例如:webConfig里的东西你存储到表里。
2,一对多关系 ,一张表包含另外一个表的主键作为外键。
例如:手机.品牌id=2, 这里的2是[品牌名称表]的id字段为2的纪录,品牌名称是"Nokia"。一个手机只能有一个品牌。
3,多对多,需要2张表,有一个包含两个外键的关系表。
例如: 手机1即属于"智能" 又属于"滑盖"组的, 一个组包含多个手机,一个手机可以属于多个组。
4,树型结构,常见的两钟:父ID设计和001002编码设计。
例如:手机的经销商分为 省/市/县
5,“多态”结构和多对多略有不同,如果需求中某表字段多少类型有非常大的不确定性,可以采用3个表来完成:
一个[主表](ID),
一个[属性名称表](属性ID.属性名称),
一个[属性值表],包括3个字段:
属性值(属性Value varchar(500))
主表ID
属性ID
这样可以作到最小冗余度。
(和常见的多对多关系不同的是:值统一用varchar来存储,因为这类型的值一般不会用来计算)。
比如:手机型号有几千种,除了共同属性外还有不同属性有几百个,属性名和值类型都不一样,有的手机有这属性,有的没有。
对于这样的“多态”,我们就采用上面的设计结构。
其效果相当于:
某奇怪手机.属性集合["某某奇怪属性名"]="某某奇怪值";
某变态手机.属性集合["某某变态属性名"]="某某变态值";
[解决办法]
jf
[解决办法]
散分??
接分..
[解决办法]
搬着板凳来景仰楼主+学习+占位。
[解决办法]
看狼...
[解决办法]
学习
[解决办法]
学习了,接分
[解决办法]
不知道 数据字段 属于你里面的那一个 呵呵
[解决办法]
留个印记!
[解决办法]
呃……学习学习
jfjf
[解决办法]
JF~~~~~
[解决办法]
再见狼..
[解决办法]
学习一下,接分一下。
[解决办法]
学习
[解决办法]
什么意思?讨论问题?
[解决办法]
你要干啥,传教
[解决办法]
JFJF
[解决办法]
mark and up
[解决办法]
学习.
[解决办法]
学习..JF
[解决办法]
學習了
[解决办法]
jf
[解决办法]
关系型数据库,导数据的时候真是够麻烦的,不太喜欢。
[解决办法]
接分
[解决办法]
200分的帖子啊,仰视
[解决办法]
学习了
[解决办法]
[解决办法]
学习
[解决办法]
多态没弄懂
[解决办法]
mark
[解决办法]
没来晚吧~~~
[解决办法]
学习
[解决办法]
>>和常见的多对多关系不同的是:值统一用varchar来存储,因为这类型的值一般不会用来计算
这比较武断。这其实是为了自己“方便”而强加的。
另外,例如说要搜索10万个对象的30个属性,然后绑定给GridView分页显示,你如何使用这种离散属性表来有效率地产生那些绑定数据集?这个要说明,否则就很不实用了。
[解决办法]
学习
[解决办法]
学习
[解决办法]