我在我的应用程序中使用 Amplify 将数据存储在数据库中。我有两个模型:汽车和旅行。旅行可以是向外或返回的类型。在 Amplify 生成的 Car+Schema.swift 中:
.belongsTo(Car.Outward, is: .optional, ofType: Trip.self, targetName: "carOutwardId")
.belongsTo(Car.Return, is: .optional, ofType: Trip.self, targetName: "carReturnId")
在管理 UI 中,基数设置为 1:1 一车到一趟,用于字段Outward和Return:
关系名称 | 相关 | 基数 |
---|---|---|
向外 | 旅行 | 1:1 一车一程 |
返回 | 旅行 | 1:1 一车一程 |
如果汽车仅用于去机场的外出旅行并且我想保存它,我必须在返回字段中提供旅行ID 。目前,如果没有回程,我使用虚拟旅行并存储 id。
var dummy:Trip? = nil
Amplify.DataStore.query(Trip.self, byId: fakeTripID)
case .success(let result):
dummy = result
let car = Car(name: name, Outward: outwardTrip, Return: dummy)
Amplify.DataStore.save(car)
因此,每次我保存一辆车时,都会有一次去程,但不确定是否会有回程。如何保存空的或零的回程旅行,或者我应该如何更改数据模型来实现这一点?