有100万条产品数据,假设要分成10个大类,100个小类这样,现在我设想如下:
方案1.产品数据全在一张表内,然后设一字段,记录其类别,比如(水果,进口)这样,当要搜索时就分析这个字段来归类,(好像很多无限分类都用这种)
方案2.一张大表,100张小表,大表作用主要记录某产品在那个小表内,然后我想的是
1,当搜索某一具体产品时,比如“香焦”,第一种方案只一次SQL,遍历100万条的数据,第二种方案两次SQL,而且先大表的时候也是100万条的数据(字段比较少而已),然后再去读小表时又要遍历若干的数据,所以我认为搜索某一产品时第一种效率更高。
2,当要显示某一小类的所有数据或者是有明确按类搜索时,那么第二种方[案只要直接读小表就可以了,而用第一种方案又要遍历100万条。不知道以上说的对不对,有没有更好的设计方案可以两者兼顾的?

解决方案 »

  1.   

    如果类别只是一个字段的话,用一方案
    如果类别多个字段,采用二方案,原因是减少冗余
    产品信息表(数据量大)
    类别信息表(数据量小)
    产品和类别关联信息表(1种类别对应多个产品)
      

  2.   

    可能是我没表达清楚,记录类别的字段是一个还是多个无所谓,用分隔符分分开就是了,我只是想知道,两种方案对于不同要求的搜索都有各自的优点和缺点(在我的理解下),我想知道有没有一种两全的方案,或者说更选进的设计架构来应付我一开始要求的两种搜索要求.