【发布时间】:2011-02-19 04:31:07
【问题描述】:
在我们的数据库中,我们有一个中心表,其中包含数百万行不断插入和更新。 该表有一个列作为唯一标识符,用于将该表的内容与具有一对多关系的多个表链接起来。
这意味着我们在同一个事务中向 USERS 表插入条目时,还将根据主表中的相同唯一标识符填充多行 USERS_PETS 和 USERS_PARENTS(以及更多行)。
由于使用此数据库的应用程序不断插入新条目并更新现有条目,因此这些表之间的关系仅保留在应用程序级别(即逻辑 ERD,而不是通过 FK/PK 减速处理)。
问题:
- 从纯粹的性能角度假设这是最好的方法是否正确?
- 有没有办法在不影响性能的情况下设置这些键(以便 DB 更具自我描述性)?
【问题讨论】:
-
我永远不会仅仅为了性能而放弃数据完整性(PK/FK 关系)......
-
为了获得任何有用的语句,您需要更具体地了解您正在使用的数据库系统(和版本),以及这些表和键是什么样的.....
-
谢谢。如果客户端不接受您的软件,而您因为运行速度不够快而没有客户端怎么办?软件方面,我们同时使用 DB2 和 Oracle (11g),所以我正在寻找一般的见解而不是具体的解决方案。
标签: database database-design architecture erd