zoukankan      html  css  js  c++  java
  • 数据库设计的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来存储,因为这类型的值一般不会用来计算)。 

    比如:手机型号有几千种,除了共同属性外还有不同属性有几百个,属性名和值类型都不一样,有的手机有这属性,有的没有。 
    对于这样的“多态”,我们就采用上面的设计结构。 
    其效果相当于: 

    某奇怪手机.属性集合["某某奇怪属性名"]="某某奇怪值"; 
    某变态手机.属性集合["某某变态属性名"]="某某变态值"; 

    转自: http://topic.csdn.net/u/20080326/09/6b1505b2-bad3-4234-b07b-2ba70a2ca388.html
  • 相关阅读:
    Material Design系列第八篇——Creating Lists and Cards
    Androidの解决自动旋转导致activity重启问题
    cnBlogs博客推荐
    yii中sphinx,Ajax搜索分页
    yii框架中应用jquery表单验证插件
    百度一键分享
    yii框架中邮箱激活(数字签名)
    yii框架中保存第三方登录信息
    yii添加行的增删改查
    yii遍历行下的每列数据(小1月考)
  • 原文地址:https://www.cnblogs.com/webreport/p/1124923.html
Copyright © 2011-2022 走看看