LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: magic1136

有没有适合做门户网站的php系统?

[复制链接]
发表于 2007-3-3 08:45:45 | 显示全部楼层
你此处的“发帖表”与“会员表”在ER图上表现为两个“实体”(也就是ER中的"E"),而“会员表”与“发帖表”之间的“关系”(也就是ER中的"R")按你先前的状况是“一对多”,也就是每个会员可以对应多个帖子,但是每个帖子只能对应一个会员。这种情况下,只需要在“发帖表”中有一个字段标识该帖子属于哪个会员即可。
如果你想改成“多对多”的关系,也就是每个会员可以对应多个帖子,每个帖子也可以属于多个会员,那么上述方法就不行了,你必须在这两个表之外引入第三个表:“会员-帖子”表。这个表最少两个字段,分别对应会员ID和帖子ID,用于专门记录两者的对应关系。
我说的这是结构化的设计方法,当然除此方案外还有别的非结构话的方法,一般不鼓励使用,所以就不说了。
回复 支持 反对

使用道具 举报

发表于 2007-3-3 08:48:04 | 显示全部楼层
这么基本的问题,说明你基本上没有学习过数据库的设计理论。
你要多看看理论基础了。
回复 支持 反对

使用道具 举报

发表于 2007-3-3 22:52:39 | 显示全部楼层
Post by csfrank
你此处的“发帖表”与“会员表”在ER图上表现为两个“实体”(也就是ER中的"E"),而“会员表”与“发帖表”之间的“关系”(也就是ER中的"R")按你先前的状况是“一对多”,也就是每个会员可以对应多个帖子,但是每个帖子只能对应一个会员。这种情况下,只需要在“发帖表”中有一个字段标识该帖子属于哪个会员即可。
如果你想改成“多对多”的关系,也就是每个会员可以对应多个帖子,每个帖子也可以属于多个会员,那么上述方法就不行了,你必须在这两个表之外引入第三个表:“会员-帖子”表。这个表最少两个字段,分别对应会员ID和帖子ID,用于专门记录两者的对应关系。
我说的这是结构化的设计方法,当然除此方案外还有别的非结构话的方法,一般不鼓励使用,所以就不说了。


果然厉害,不错不错,非常佩服.

再问个问题
数据库设计中的分级你是怎么设计的,比如三级或五级
做无限级分类,用一个表做,你是怎么安排字段的
回复 支持 反对

使用道具 举报

发表于 2007-3-3 23:03:38 | 显示全部楼层
不太明白你的意思。
啥叫分级?讲清楚点。
如果是类似“省-市-县”这种玩意,貌似不是数据库的职责,是php的事情。
回复 支持 反对

使用道具 举报

发表于 2007-3-3 23:16:39 | 显示全部楼层
Post by csfrank
不太明白你的意思。
啥叫分级?讲清楚点。
如果是类似“省-市-县”这种玩意,貌似不是数据库的职责,是php的事情。


我的意思是说类似“省-市-县”的这种分级,但可以一直无限的分下去,如果用一个表来做的话要用几个字段做
回复 支持 反对

使用道具 举报

发表于 2007-3-3 23:26:46 | 显示全部楼层
首先,不能无限,计算机从根本上是不能处理任何“无限”问题的
第二,类似“省-市-县”的这种分级是不能在一张表上做的。
因为“省”“市”“县”都是独立的实体,它们顺序下来都是一对多关系。
还是老老实实的买本数据库设计的书来看看吧。
回复 支持 反对

使用道具 举报

发表于 2007-3-3 23:51:22 | 显示全部楼层
Post by csfrank
首先,不能无限,计算机从根本上是不能处理任何“无限”问题的
第二,类似“省-市-县”的这种分级是不能在一张表上做的。
因为“省”“市”“县”都是独立的实体,它们顺序下来都是一对多关系。
还是老老实实的买本数据库设计的书来看看吧。
   首先,储存数据是数据库的事,表现数据是php等的事。所以在数据库中如何保存树结构不是一个假命题。
   类似“省-市-县”的这种分级是不能在一张表上做的,这个论点需要论证,而且是经不起论证的,因为对每一个节点来说,其父亲只有一个,这种表是可以设计的。
关于如何设计这样的表,renwei.sz(深圳.任伟)在http://bbs.pgsqldb.com
上专门论述过,具体可以参见:
http://bbs.pgsqldb.com/index.php ... 717af238f5bcc0b9046
其三,所谓“无限问题”是一个假命题,但是计算机处理树或森林都是有办法的。效率取决于你使用的数据结构和算法,最简单的可以使用递归。有点远了。。。。
回复 支持 反对

使用道具 举报

发表于 2007-3-4 00:10:13 | 显示全部楼层
呵呵,首先我喜欢你的较真。
“类似“省-市-县”的这种分级是不能在一张表上做的”,这句话并不绝对正确,因为数据库的设计并非一定要满足那么多的条条框框。
但是一般说来,还是要尽量保持KISS原则的。
所以我简单的说了这样的话。
你给的帖子我看了,很不错,不过用在“省-市-县”这个问题上,大材小用,并不符合KISS原则。
对于“无限问题”,确实扯远了~~那就不扯了....
回复 支持 反对

使用道具 举报

发表于 2007-3-4 00:13:28 | 显示全部楼层
当然了,如果确实有5级以上,cg111兄给出的帖子就是很好的方案了
回复 支持 反对

使用道具 举报

发表于 2007-3-4 11:44:03 | 显示全部楼层
和高手对话是令人愉快的。^_^
对数据库设计来说,满足3NF当然很好,4NF更好,但是不满足3NF或2NF不能说就不叫数据库,只能说数据库设计的比较垃圾罢了。。。。。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表