我需要表格:消息和收藏夹以及要提供的仪表板列表 消息表的结构如下:
from_user_id | to_user_id | message | timestamp
收藏夹表的结构如下:
user_id | fav_user_id | timestamp
仪表板列表必须像这样进给:
如果仪表板所有者(已登录用户)已交换消息或已收藏其他用户,则必须将此用户添加到仪表板列表中。
我的问题是:当需要加载仪表板时,通过读取两个表来填充仪表板或创建另一个名为“dashboard”的表来更好地填充仪表板,该表汇总了其他两个表内容并最终只读取仪表板列表从它?
注意:仪表板表的填充方式如下:当一个新行添加到表消息或收藏夹时,在仪表板表上进行检查以查看是否必须更新。
答案 0 :(得分:0)
我会把它保存为两张桌子。将两者结合在一起意味着您可以在不需要时重复数据。类似于from_user_id | to_user_id |消息|时间戳| is_fav |将需要fav_timestamp,并且最后两列只是每条消息的相同数据,除非您希望跟踪该状态随时间的变化。
答案 1 :(得分:0)
听起来dashboard
就像messages
和favorites
中数据的缓存一样。
当你以这种方式思考时,你会问:
没有正确答案。但是,要明白以这种方式应用缓存我就是一个过早优化的案例,你可以谷歌。
在源数据和显示数据之间添加一层计算,只需添加一个地方即可:
如果您想更改messages
或favorites
的行定义,您可能还需要更改dashboard
的定义以保存新信息,您还需要更新插入新数据时更新dashboard
的触发器/事件/回调。这可能听起来不是什么大问题,但当有人说'#34;这个页面上的数据是错误的"您将通过查看构成该页面的代码开始调试,而不是在更新另一页面上的数据时触发的隐藏回调/侦听器。
IMO,简洁性每次都胜过聪明。