假设有两个表,一个是产品(就说是pc好了):
pc(pc_id,  
   price,  -价格
   cpu,  -cpu
   os,  -操作系统
   harddrive,  -硬盘
   memory,  -内存
   ...)
cpu,os,等配件的值是配件的id(或者是名字?但这样设计是不是不好,应该用配件表的主键来建立关系吧)
另一个是pc的配件
part(part_id,
     model_name,  --名字
     price,  --价钱
     quantity,  -存货数量
     ...)假定一个pc的某个配件只能用一种型号的配件,而同一型号的配件可以被不同的pc使用,怎么样建立这两个表之间的关系呢?谢谢!

解决方案 »

  1.   

    pc
    (pc_id,一系列配件的id,其他信息,价格操作系统);
    配件表
    (配件ID,价格,型号其他信息)
      

  2.   

    那pc和part的关系怎么定义呢?pc里每个配件都是part的外键吗?我在visio里这样定义好像不行啊,因为他们都是指向part的,而er图里好像一个表指向另一个表的外接只能有一个吧?
      

  3.   

    --修改pc表,如:
    pc(pc_id,  --计算机编号
      pc_type, --机型  
      price,   --价格 
      sal_date --售出日期
      sal_code --售出合同代码

    --part表中也增加一字段:pc_type。
    --新增一张组装表,如:make_pc(pc_type,  --机型
    part_cpu_id,          --配件cpu代码
    part_cpu_count,       --配件cpu数量
    part_memory_id,       --配件内存代码
    part_memory_count,    --配件内存数量
    ......
    )
      

  4.   

    谢谢回复,不过有几个问题如果加make_pc这个表的话,跟直接在pc表里加入这些part有什么区别吗?pc表里的pc_id也可以当作type用啊?还有就是在part里加入pc_type的作用是什么呢?每个part可以用在不同的pc上啊?谢谢