我正在做一个简单的快递跟踪项目,其中有两个名为TrackingStatusParcelTracking的表。

ParcelTracking表具有Tracking_ID作为主键,而TrackingStatus_ID作为外键(其是TrackingStatus表的主键)。

每次快递员状态更改时,我都想添加新的TrackingStatus_ID,以便可以检索该特定Tracking_ID的所有先前状态。

我该如何实现?

最佳答案

据我了解,这不是“更新”问题,而是架构和模型的布局问题。您的外观看起来有些混乱。

根据您在问题中所说的,看来您正在这样做:

| TrakingStatus |        | ParcelTracking   |
|---------------|        |------------------|
| Id            |        | TrackingId       |
| ...           |--------| TrackingStatusId |
|               |        | ...              |


如此看来,如果快递员发生了变化,那么您想添加一个新的TrackingStatusId,我想这是您想在TrackingStatus表中创建一个新记录,然后在ParcelTracking中引用它表。您应该在这里将OneToMany关系与另一个表一起使用,该表允许您为TrackingStatus中的单个宗地引用ParcelTracking中的行,并且您将得到类似以下内容的信息:

| TrakingStatus |          | ParcelStatuses  |              | ParcelTracking   |
|---------------|          |-----------------|              |------------------|
| Id            | -------- | TrackingId      | *-----------1| TrackingId       |
| ...           |          | TrackingStatusId|              | ...              |


这样,当快递员更改时,您不需要覆盖现有的TrackingStatusId值,您只需创建另一个记录并将其与相同的ParcelTracking对象链接即可。

09-29 19:56