各位好,我现在要设计一个三层的产品库:1.数码类
      1.1 mp3  
      1.2 数码相机  
      1.3 DVD  
2.电脑类
       2.1 整机  
       2.2 CPU  
           2.2.1 Interl  
           2.2.2 AMD  
       2.3 显示器
------------------------------------
这样设计行不行:产品大类表(Catalog):
产品大类ID(FID)     产品大类名称(FtypeName)      产品大类说明(Fdescribe)
1                        数码类                  数码相关产品等
2                        电脑类                  电脑相关产品等产品二类表(Category):
产品二类ID(SID)   产品二类名称(StypeName)   产品二类说明(Sdescribe)     产品大类ID(FID)
1                          mp3                                              1                                                                               
2                          数码相机                                         1                                                                                  
3                          CPU                                              2                                                                                          
4                          DVD                                              1                                                                                          产品三类表(subCategory):
产品三类ID(TID)   产品三类名称(TtypeName)   产品三类说明(Tdescribe)     产品二类ID(SID)
1                           Interl                                          3
2                           AMD                                             3

产品列表(ProductsList):  

产品ID(ID)           产品型號(typeName)            产品價格(money)                 产品三类ID(TID)
1                          AMD-02112                    230.0                        2                                             2                          Intel-x2017                  270.0                        1              
...
-------------------------------------诚望大佬们指点一二,这样设计问题在哪里?要怎么设计才最合理,小弟学数据库不久,感激不尽,谢谢了.我一直在线(只能给这么多,我没有分了)

解决方案 »

  1.   

    其实数据库设计要根据程序需求相结合,才能决定是不是最优化的。你这样设计,我个人认为还是不错的。只是有一个小小缺点,也可以说不是缺点,因为这种结构就存在这种问题。比如:
        1月份某产品X属于产品三类,产品三类说明是A
    后来3月修改了产品三类说明为B这样3月以后你就不知道1月时产品X的三类说明原来是A,即一旦变化了说明或名称,相应的下属对应也就变化了。也就是说这种结构比较适合数据量级大的系统。
      

  2.   

    数据结构传上去乱了,估计看不清楚,再传下,非常谢谢apple_8180兄的回答,再问下,对于这种产品三层的数据库设计还有没有更好的建议?大佬们的三层都怎么设计的?想触摸下,期待中...
    -------------------
    产品大类表(Catalog):
    产品大类ID(FID)    产品大类名称(FtypeName)    产品大类说明(Fdescribe)
    1                 数码类                    数码相关产品等
    2                 电脑类                    电脑相关产品等产品二类表(Category):
    产品二类ID(SID) 产品二类名称(StypeName)   产品大类ID(FID)
    1              mp3                        1                                                                                                                                                                                                                                                     
    2              数码相机                   1                                                                                                                                                                                                                                             
    3              CPU                        2                                                                                                                                                                                                                                                                               
    4              DVD                        1                                                                                                                                                                                                                                                                     产品三类表(subCategory):
    产品三类ID(TID)  产品三类名称(TtypeName)   产品二类ID(SID)
    1               Interl                    3                                                                                  
    2               AMD                       3                                                                                     产品列表(ProductsList):    
    产品ID(ID)     产品型號(typeName)  产品價格(money)  产品三类ID(TID)
    1             AMD-02112           230.0            2                                                                                           2             Intel-x2017         270.0            1                            
    ... 
      

  3.   

    其实字段是一样的,为何不设计在同一个表上?
    我通常都建在一个表上的。也可以用个字段记录树状结构。

    数码类    001
    电脑类    002
    mp3      001001
    相机      001002
    cpu      002001
    dvd      001003
    interl   002001001
    AMD      002001002字段设为varxhar类型的,要查询电脑类的3类表条件只需    树状属性 like '001______'  这样就可以了,很方便
    要读出树状图时算法也好写。
    当然,再加个ID关联的属性,就是你那个产品n类ID的那个属性就最好。
      

  4.   

    我是新手,大家都发发言啊,让小弟学习下哦...CSDN的每个人都比我强.
    -----------
    yueliangdao0608别这样啊,都说说啊.. >_<
      

  5.   

    XFliangwh兄说的:
    也可以用个字段记录树状结构。

    数码类         001
    电脑类         002
    mp3             001001
    相机             001002
    cpu             002001
    dvd             001003
    interl       002001001
    AMD             002001002
    ---------------
    这个结构是怎么设计的?表两个字段还是怎么的? 像cpu 002001,interl 002001001等这些要怎么去判断插入呢?我真的不是很了解,大佬们别烦啊...  :(
      

  6.   

    非常谢谢liuyann兄的回答.
    产品三层还有没有其他的设计结构,大家都来说说啊,小弟学习学习..谢谢各位了
      

  7.   

    大家都怎么设计的? 说说啊?
    -----------
    id,pid,name,description1        0        数码类             描述
    2        0        电脑类             描述
    3        1        MP3                描述
    4        1        数码相机        描述
    5        1        DVD                描述
    6        2        整机                描述
    7        2        CPU                描述
    8        7        Intel            描述
    9        7 ...
    -------------
    这个怎么样?
      

  8.   

    L11没什么好坏之分。不同的设计满足不同的需求和环境。11楼的设计也可以,你考虑一下如何进行SQL select 以及update,自己平衡一下即可.
    == 思想重于技巧 ==
      

  9.   

    非常谢谢各位CSDN朋友的回答,谢谢!