用户ID,用户名还是真实姓名设计同学录的数据库,考虑到在系统里(网页里)留言板,论坛等都用真实姓名显示(而不是用户名),这样显示比较亲切,也比较清楚。用户表(Users)如下
UserId,Username,RealName,....留言表(Topic)
UserId,Title,Content,....是否应该在Topic表里增加RealName字段??(UserID还是存在的)
如果包括RealName字段,违反了范式,造成了冗余,每次用户更改用户姓名时都需要修改留言表,但这样做的好处是不用每次显示都执行多表连接,因为数据可能会很多,同时使用Hibernate也更加方便。注:类似留言表这样的表格很多,显示时都用真实姓名。
UserId,Username,RealName,....留言表(Topic)
UserId,Title,Content,....是否应该在Topic表里增加RealName字段??(UserID还是存在的)
如果包括RealName字段,违反了范式,造成了冗余,每次用户更改用户姓名时都需要修改留言表,但这样做的好处是不用每次显示都执行多表连接,因为数据可能会很多,同时使用Hibernate也更加方便。注:类似留言表这样的表格很多,显示时都用真实姓名。
這樣就可以了吧?
1楼的如果是匿名的话就查不到留言了
select username,realname,title,content
from topic
left join users on users.userid = topic.userid如果将realname冗余到topic表中,一个是容量会增大,再一个是用户修改时要同步topic表
如果不同步的话查询就要关联,速度会慢点.楼主根据实际情况定夺吧
如果不同步的话查询就要关联,速度会慢点.是的,我在这两者之间举棋不定
b.*
from Users a
inner join topic b
on a.userid = b.userid
==
我想用连接做 , 遵循数据库的设计规范
你就加个realname 字段
如果不是这样 , 建议用连接