第一,是关系型数据库
第二,触发器
第三,父子表写了几个月的程式,都没有用到这些,结果一个朋友看了我的数据库设计,说是我技术垃圾,连这几个基本的都没用。
请问他们分别是什么?
请问他们分别的使用好处?
请问他们分别的示例?

解决方案 »

  1.   

    关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。触发器是一种特殊的存储过程,类似于其它编程语言中的事件函数,SQL Server™ 允许为 INSERT、UPDATE、DELETE 创建触发器,当在表(视图)中插入、更新、删除记录时,触发一个或一系列 T-SQL 语句。父子表,1对多关系。
      

  2.   

    数据库设计的5种常见关系,其中本文主要讲“多态”关系结构,以手机为例。1,配置关系  --和其他表无任何关系的表。
    例如:webConfig里的东西你存储到表里。2,一对多关系 ,一张表包含另外一个表的主键作为外键。
    例如:手机.品牌id=2, 这里的2是[品牌名称表]的id字段为2的纪录,品牌名称是"Nokia"。一个手机只能有一个品牌。3,多对多,需要3张表,有一个包含两个外键的关系表。
            例如: 手机1即属于"智能" 又属于"滑盖"组的, 一个组包含多个手机,一个手机可以属于多个组。4,树型结构,常见的两钟:父ID设计和001002编码设计。
    例如:手机的经销商分为 省/市/县5,“多态”结构和多对多略有不同,如果需求中某表字段多少类型有非常大的不确定性,可以采用3个表来完成:一个[主表](ID),
    一个[属性名称表](属性ID.属性名称),
    一个[属性值表],包括3个字段:
          属性值(属性Value varchar(500))
          主表ID
          属性ID这样可以作到最小冗余度。
    (和常见的多对多关系不同的是:值统一用varchar来存储,因为这类型的值一般不会用来计算)。比如:手机型号有几千种,除了共同属性外还有不同属性有几百个,属性名和值类型都不一样,有的手机有这属性,有的没有。
    对于这样的“多态”,我们就采用上面的设计结构。
    其效果相当于:某奇怪手机.属性集合["某某奇怪属性名"]="某某奇怪值";
    某变态手机.属性集合["某某变态属性名"]="某某变态值";