应用mysql数据库 没有用Hibernate框架
实体A A为一张表 
实体B B为一张表  如果A为某明星 B为她得新歌
现在 如果insert 一个新B  要在A中显示B的数量 1.在A中有字段 表示B的数量  每insert B 再update  A 中数量字段。2.显示A中B数量 没有表示B数量的字段 每次查询B表 得到属于A的B数量。请问1和2哪种数据库设计比较优一些?

解决方案 »

  1.   

    B中的数量可以用查询得到,用2如果有多个A记录   用for循环 依次查 每个A的B数量 会不会影响性能呢?
      

  2.   

    索引 类似于oracle中的sequence
      

  3.   

    A中有id  B中记录它所属的A的id
      

  4.   

    为什么不贴表结构?
    B中记录它所属的A的id:什么形式?1,2,3这种?
      

  5.   

    这个是比较标准的设计方法,除非查询性能不满足要求的时候,一般不用方案1。显示的时候可以直接用SQL语句来实现统计。
      

  6.   

    为什么不贴表结构?
    B中记录它所属的A的id:什么形式?1,2,3这种?
    还是
    1
    2
    3
      

  7.   

    A
    ID Name
    A001 张一二
    A002 王三四B
    SongID SingerID SongTitle
    1 A001 歌曲0001
    2 A002 歌曲0002
    3 A001 歌曲0003
    4 A001 歌曲0004
    5 A002 歌曲0005
    然后你直接 select a.*,count(b.SongID) as 数量 from a left join b on a.ID=b.SingerID group by a.ID 就行了。
    如果效率不够,则完全可以行执行 select * from a 然后再 select count(*) from b where singerID=xxx;