关于设计数据库的一点心得
假设:
有一张用户信息表,字段:用户id,用户名
有一张产品表,字段:产品id,产品名,用户id
此时如果我们希望通过产品表中的用户id查询出用户表中的用户名,那么就需要在产品表中查询后,再在用户表查询一次。
当用户量增多,数据量极大时,查询一次的成本可能会很高。
那么会有这么一个疑问,把用户名字段写一个在产品表中是不是就意味着查询产品表就能查询出用户名,虽然数据冗余了,但减少了一次查询性能上得到了提高。
这种想法是“错误的”。
数据的冗余问题是一方面,最大的问题是更新数据。
一旦用户名更换了,那么你需要在多张表中更新数据,这样不仅后期维护麻烦,而且写入操作也增多了。