总共有三个界面。
  一个是A订单(共40个字段)
  一个是B订单(共60个字段)
  一个是项目一览书(共90个字段)其中A订单和B订单有30个字段是重复的
项目一览书是由某一个订单生成(项目一览书与订单一一对应)
也就是说项目一览书的字段包含了A和B订单的所有字段,及项目一览书独有的字段
 ~~:
   A订单独有字段10个
   B订单独有字段30个
   项目一览书独有字段20个请问我数据库的表该怎么设计?目前我是
   订单表(包含主键、订单ID、订单类型)
   订单详细(包含订单ID和30个共有字段)
   订单扩展(包含订单ID和A、B订单独有的40个字段)
   项目一览表(项目ID,订单ID,及项目独有的20个字段)这样设计的话我代码中的模型层怎么建?请各位前辈指点一二,传授一点经验。

解决方案 »

  1.   

    说的有点模糊,不太清楚你要干嘛,能表述一下?
    主要是业务关系上,比如说为什么要有订单A表、订单B表,为什么要有项目一览表。猜一下:
    某个项目,有可能有10个、20个订单,数目不定。
    ——如果是的话,以项目表中心开始考虑模型
    ——无论哪个订单表,都给一个字段“项目ID”(外键这个东西我不会,不知道是否有用;所以一般我都是给个字段),以此来判断订单所属的项目。
    ——可以考虑在项目表中,建立一个字段“订单ID”,以数组形式。比如“1,5,10,12”,表明这个项目下有订单,号为1,5,10,12。
    ——思考一下聚集、非聚集索引的建立,怎么搜索会比较快。也许订单表中的“项目ID”可以作为非聚集索引。楼主详细说说,最近对数据模型比较感兴趣,顺便也学学。
      

  2.   

    4个表格:
    1. 订单共有信息
    2. 订单A单独信息 + 订单共有信息ID
    3. 订单B单独信息 + 订单共有信息ID
    4. 项目一览表单独信息 + 订单AID + 订单BID
      

  3.   

    感谢楼上的两位!项目一览表 由订单A或B生成。也可以直接添加。还有我C#代码中的模型层该怎么设计呢
      

  4.   


    我现在也在学习C#.Net
    他么的类、类、类、继承、继承、类、类
    这不让人累累累么……
      

  5.   


    A、B是两种格式的订单。项目一览书是由A订单或B订单中的一个生成的。
    A、B是平级,项目一览书对应一个订单
      

  6.   

       1、项目订单表(包含主键、订单ID、订单类型、项目ID,订单30个共有字段,项目独有的20个字段)
       2、订单扩展A(包含订单ID和A、B订单独有的10+30个字段)
    这种做法,再极端一点干脆把2也加到1都可以。   1、项目订单表(包含主键、订单ID、订单类型、项目ID,订单30个共有字段,项目独有的20个字段)
       2、订单扩展A(包含订单ID和A单独有的10个字段)
       3、订单扩展B(包含订单ID和B订单独有的30个字段)
    这种做法,关联扩展时,需要按1的类型字段决定关联2还是3