我在网上也算看了一些教程了,我自己设计一个论坛程序(也许是不知道天高地厚了,呵呵)
      在设计数据库时,我发现:好像:相关的信息不能集中到一个表中,因为要遵循教程中的一些规则吧
      比如:我要想收集多一些的用户信息,由于要用三层结构和“为每套相关的数据建立一个独立的表格”等好像应该把用户表分成users表和userDetails表,再随便想想,还得有系统配置表、广告表、帖子表、用用户信箱表、这只是我随便想起来的具体设计里应该还要多!!
    用户的一次请求至少要用到:用户表、帖子表、广告表和系统配置表,我是感觉这样频繁地使用数据库好像不太对吧?
   把一些常用的一经常改变的表放在Application里?那也至少要用到users表和userDetails、帖子表、用用户信箱表那要是将来再给论坛加点功能,那企不是要读取更多的表了!将来再给论坛加点功能,那企不是要读取更多的表了!我知道可以作多表联合查寻,可是有的表是不相关的呀?? 

解决方案 »

  1. 一个用户的访问使用多个表这是合理的。
    数据库设计本来就应该遵循范式的原则,但是你说的这些表它不会也不应该在一个地方一次性的使用,而是用到的时候才读取。其实具体的你完全可以去参考其它论坛的设计,有很多开源论坛的。比如:Discuz.
      


  2. up.怎么设计要具体情况具体分析。比如user跟userDetail是怎样的关系,为什么要分成两个表呢?是因为一对多吗?
    都要具体考虑查询连的表比较多时建立适当的视图可以简化。
      

  3. 这个要根据你的具体需求来分析设计像Discuz 中的user 就是分成了两个表
      

  4. 嗯 确实 数据库的设计是一个恨重要的环节,单单用户表就可以分为很多,比如用户登入名,以及用户的详细信息表都是分开的 
    如果你想学的话 建议你买一本 数据库系统概论(第四版),王珊编写的,网上有相应的PPT和习题下载,这本书很好的,数据库设计写的很详细
      

  5. 我下载了Discuz论坛,怎么没看到数据库呢?
      

  6. 根据lz的描述,数据库建多个表很合理,不过三层结构里面所说的(由于要用三层结构和“为每套相关的数据建立一个独立的表格”)倒真的不合理,三层结构是死的,人的思维是活的,不要把编程的思维局限在死的框架下面.如果lz真的对自己的数据库设计不放心,可以考虑用数据库建模工具PowerDesigner
      

类似问题 »