我在考虑以下情况:
应该实现库存历史表。 stockHistory引用了一个项目表,因此应该记录项目中每个库存的修改。
有两种可能性:
1) stockHistoryId -> AUTO_INCREMENT itemId -> refers to the item table 2) itemId -> reference to the item table sequence -> sequence, increments uniquely per itemId
2的例子是:
itemId sequence 1 1 1 2 2 1 2 2 3 1 3 2 ...
如果我理解正确,则在InnoDb中使用PRIMARY Key存储在磁盘上。
因此,如果我使用第一种方法将AUTO INCREMENT Key作为主键,那么如果你“将来看得太远”会有一个性能损失。
例如,stockHistory可能如下所示:
stockHistoryId itemId 1 1 2 2 3 3 ... (many other entries) 500000 1 ..... 750000 1
因此itemId将在磁盘上保存为“碎片化”....
如果我使用其他方法,则不会出现碎片,因为每个方法都按磁盘上的itemId排序。
我完全错了还是这是正确的?很难掌握所有细节......