我们有一个数据库,其中多个表被分区。这些表的主键(为简洁起见,PK)的形式为
其中transaction_date是分区键,id是唯一的整数列。如果我们不对表进行分区,那么我们只会使用id作为 PK。
我们还有其他几个表需要外键 (FK) 来引用这些分区表。我无法决定是使用复合 FK,引用 PK 的两列,还是使用单列 FK,引用唯一索引支持的id列。
这两种方法有什么优点/缺点吗?到目前为止,我能想到的唯一因素(我什至可能是错的)是:
单列 FK:降低应用程序开发的复杂性。
复合 FK:允许在加入 FK 列时消除分区。
foreign-key database-design sql-server primary-key partitioning