所以一个可以像 full_name 一样从名字和姓氏计算的字段,我们应该使用@property 来计算 full_name。但是当我们需要获得所有“n”个人的全名列表时。full_name 将被计算 'n' 次,这应该比从数据库中获取字段需要更多的时间(如果它已经存储为单独的字段!)。那么他们使用@property 计算full_name 的任何处理时间/数据库获取时间优势/劣势吗?(注意:我已经考虑过@property 的其他优点,比如减少数据库大小,不用担心名字或姓氏的变化而不改变全名,设置名字和姓氏的 setter 函数等。我只想知道处理/与将 full_name 保存到数据库中相比,db 获取时间优势/劣势。
1 回答

当年话下
TA贡献1890条经验 获得超9个赞
您正在谈论的技术称为Denormalization。这是相当先进的技术。
非规范化是一种用于先前规范化的数据库以提高性能的策略。在计算中,非规范化是通过添加数据的冗余副本或对数据进行分组来尝试提高数据库读取性能的过程,以损失一些写入性能为代价。
它与数据库规范化相反。并且您应该始终使用规范化数据库启动您的应用程序。
如果您没有任何严重的性能问题,我建议您不要这样做。如果您遇到问题,请先尝试其他解决方案以提高您的应用程序速度。
第一范式(1NF):
它应该只有单(原子)值的属性/列。
非常基本的缺点示例:UPDATE
声明。您需要访问 full_name 表 + 计算中的 2 列。
无论如何,您的 full_name 示例非常简单,您绝对应该使用 @property 执行此操作
添加回答
举报
0/150
提交
取消