事情经过一位帅哥(id为1)送了999朵玫瑰花给一位美女(id为2)数据记录在history_logs1表中
history_logs1表如下user_id friend_id event_id date_event number
2 1 10 2010-02-14 10:37:21 999event_id=10表示送玫瑰花这位帅哥又邀请这位美女一起去看电影数据记录在history_logs2表中
history_logs2表如下user_id friend_id event_id date_event
2 1 11 2010-02-14 20:30:05event_id=11表示邀请您一起去看电影美女来了以后,系统要将帅哥的两条消息按照时间排序以下面的形式展现给美女[2010-02-14 10:37:21]您的好友[帅哥]送给您[999]朵玫瑰花
[2010-02-14 20:30:05]您的好友[帅哥]邀请您一起去看电影[]中的数据从数据库中读取,其他描述性文字都是预先根据event_id设定好的1,请问SQL语句应该怎么写?
2,另一种设计方案是将所有消息都储存在history_logs1表中,但是类似邀请去看电影的消息就会有number这个字段是冗余的,这个表储存着1000W条以上的记录
3,这样设计数据库是否合理?如果有好的方案,请指教
history_logs1表如下user_id friend_id event_id date_event number
2 1 10 2010-02-14 10:37:21 999event_id=10表示送玫瑰花这位帅哥又邀请这位美女一起去看电影数据记录在history_logs2表中
history_logs2表如下user_id friend_id event_id date_event
2 1 11 2010-02-14 20:30:05event_id=11表示邀请您一起去看电影美女来了以后,系统要将帅哥的两条消息按照时间排序以下面的形式展现给美女[2010-02-14 10:37:21]您的好友[帅哥]送给您[999]朵玫瑰花
[2010-02-14 20:30:05]您的好友[帅哥]邀请您一起去看电影[]中的数据从数据库中读取,其他描述性文字都是预先根据event_id设定好的1,请问SQL语句应该怎么写?
2,另一种设计方案是将所有消息都储存在history_logs1表中,但是类似邀请去看电影的消息就会有number这个字段是冗余的,这个表储存着1000W条以上的记录
3,这样设计数据库是否合理?如果有好的方案,请指教
2 1 10 2010-02-14 10:37:21 999
2 1 11 2010-02-14 20:30:05 null
SELECT * FROM history_logs1
UNION
SELECT * FROM history_logs2) AS V
WHERE V.user_id=#####
2,另一种设计方案是将所有消息都储存在history_logs1表中,但是类似邀请去看电影的消息就会有number这个字段是冗余的,这个表储存着1000W条以上的记录感谢3楼给出的SQL语句我不太清楚目前的两种方案哪个更好一些,效率更高一些