Database design 在数据库中重复字段以节省一些复杂的查询,这是一种糟糕的设计实践吗?
如果您有几个连接表,其中包含您需要的所有信息,但它涉及一些复杂的连接等。在您选择的表中添加一个额外的字段来保存这些额外的查询是否更好 提前谢谢Database design 在数据库中重复字段以节省一些复杂的查询,这是一种糟糕的设计实践吗?,database-design,relational-database,Database Design,Relational Database,如果您有几个连接表,其中包含您需要的所有信息,但它涉及一些复杂的连接等。在您选择的表中添加一个额外的字段来保存这些额外的查询是否更好 提前谢谢 Paul我确实看到过这种情况,尽管我怀疑这是否是一种好的设计实践,但它似乎有时能提供一些好的性能。特别是我将其视为Rails中的计数器缓存,其中提供了一个新字段以保持计数。我想如果你有太多的条目,它确实可以产生更好的性能。我确实看到过这种情况,尽管我怀疑它是否是一种好的设计实践,但它似乎有时可以提供一些好的性能。特别是我将其视为Rails中的计数器缓存,
Paul我确实看到过这种情况,尽管我怀疑这是否是一种好的设计实践,但它似乎有时能提供一些好的性能。特别是我将其视为Rails中的计数器缓存,其中提供了一个新字段以保持计数。我想如果你有太多的条目,它确实可以产生更好的性能。我确实看到过这种情况,尽管我怀疑它是否是一种好的设计实践,但它似乎有时可以提供一些好的性能。特别是我将其视为Rails中的计数器缓存,其中提供了一个新字段以保持计数。我想如果你有太多的条目,它确实可以产生更好的性能。是和否 这故意违背数据库规范化的原则,因此被称为“非规范化” 它的缺点几乎就是我们正常化的所有原因,最明显的是它引入了一种错误可以使数据库与自身不一致的方式。因此,一般来说,DB设计不好。实际上,它还使数据库更新更复杂,因此成本更高(假设没有错误) 但是,它可以为某些查询提供性能优势,这些查询是始终超时和琐碎之间的区别。因此,这是一个合理的,有时是必要的优化 我想采取以下方法:
一般来说,原则上我会说不。在db设计上没有妥协。我同意Jon Hanna的回答。您不会为了编写更简单的查询而复制数据,我这样做只是为了提高性能。您可以创建一个视图来简化访问dataDaveo的方式,我认为它们的意思是“复杂”的,即数据库必须执行哪些操作来执行它,而不是编写它(它总是可以被视图和函数分解,然后保存为可重用的过程或函数),我的意思是关于数据库读取的复杂。。。谢谢你的回答。原则上,我会说不。在db设计上没有妥协。我同意Jon Hanna的回答。您不会为了编写更简单的查询而复制数据,我这样做只是为了提高性能。您可以创建一个视图来简化访问dataDaveo的方式,我假设它们的意思是“复杂”的,因为数据库必须执行哪些操作才能执行