现在要做个sns的项目,跟人人和开心差不多。但是在设计数据库的时候出现一些问题。CTO提供了一种数据库结构设计,类似于drupal的结构,如下描述:
node表:
id , uid , title , body , parent_id , node_type(node的属性值blog/status/user/comment)user表:
id , node_id , username , password , name blog表:
id , node_id ,(blog自己的一些字段)album表
id , node_id , name , description大致就是这样。所有的内容包括用户都是node得子类。
他给的理由是这样做灵活性和扩展性比较好。
但是我并不认为这个一个很适合我当前项目的设计。因为如果按照这种设计,那么node表会变的无比庞大。
现在马上就要着手开发了,因为我心里没底,不知道这种设计是否合理。请大家出出主意。下面是我的一个设计(就是最普通的根据功能建立相应的数据表):
blog表:
id , title , body , uiduser表
id , username , password , namealbum表
id , name , description , uid , path

解决方案 »

  1.   

    看你的网站发展前景了。
    如果没什么新的属性增加,则你的方案比较方便。
    但如果允许用户将亚自己设置新属性,则你CTO的比较容易扩展。
      

  2.   

    感谢您的回复。
    这个项目远远不只涉及我上面所描述的这几个表。我估算了一下,大概需要建立50多张表,如果所有功能都跟node关联,我个人认为必要性不大。而且,node表会相当的庞大
      

  3.   

    还是按照你们的CTO的设计来吧。 就算NODE 表非常大,也可以分区,分表!