问题:
假设:数据库有几十张表,其中接口里 涉及到这些表的地方都需要返回用户的头像、昵称、性别等。对于这些经常调用的字段,应该怎么处理?如果在这些表中都添加这个冗余字段,那么当用户更新这些字段的时候,都要将所有表的冗余字段进行更新吗?还望大佬们不吝赐教!
回答1:
如果你的系统没几个用户,服务器性能过剩,不需要考虑这事,啊哈哈。
也就是说,你现在的水平适合先把系统做出来,然后才考虑性能优化。
基于以上考虑:
1、这种数据当然不能冗余啦,初级用户就JOIN呗。
2、稍微进阶一点,这些数据缓存一下,反正不会整天修改的。
3、使用 Mapper 技术可以代替数据库的Join语句。
4、方法还有很多...
回答2:
不知道你们数据量有多大,用join查会很慢吗?
回答3:
我也有同样的困惑。
emmm~, 或许可以把这些经常调用的字段重新弄成一张元数据表,然后其他表跟这张元数据表关联
回答4:
1、常用的这些字段可以通过表变量查出来,然后在需要用的join其它表。
2、可以把常用的这些字段通过主键用户ID的形式存到Redis中
可以把具体使用场景描述的再清楚一些,把表设计截图贴出来。
回答5:
数据库设计需要遵循一定的范式,比如完整性和一致性,不能因应用程序使用方便而违背其准则,否则会引发一系列问题