Я новичок в программировании и особенно в разработке под iOS
В настоящее время я пытаюсь использовать область в качестве локальной базы данных в приложении электронной коммерции. У меня есть объект Realm Product и WishList, как показано ниже
Продукт:
class Product : Object {
@objc dynamic var productID : Int = 0
@objc dynamic var name : String = ""
@objc dynamic var categoryID : Int = 0
@objc dynamic var categoryName : String = ""
@objc dynamic var unitPrice: Double = 0.0
@objc dynamic var quantityInCart = 0
@objc dynamic var quantityFromServer = 0
@objc dynamic var descriptionProduct : String = ""
@objc dynamic var hasBeenAddedToWishList : Bool = false
@objc dynamic var hasBeenAddedToCart : Bool = false
@objc dynamic var isNewProduct : Bool = false
@objc dynamic var productWeight : String = ""
@objc dynamic var weightUnit : String = ""
@objc dynamic var minimumOrderQuantity = 0
@objc dynamic var maximumOrderQuantity = 0
override static func primaryKey() -> String? {
return "productID"
}
}
Список желаний:
class WishList : Object {
var products = List<Product>()
}
мое приложение может изменить пользователя. скажем, если пользователь А поместил некоторые товары в список желаний (заполняет объект WishList товаром), после этого он выполняет Log Out,
тогда он сделает объект списка желаний пользователя B уже имеющим объект после входа пользователя B.
поэтому я думаю, что мне нужно вставить userID как в объект Product, так и в Wishlist, а также удалить первичный ключ в объекте Product.
override static func primaryKey() -> String? {
return "productID"
}
поэтому, когда я выполняю запрос или фильтрую из базы данных области, я могу фильтровать на основе productID, а также userID.
у меня есть правильный подход, использующий такой путь? или есть лучший подход? потому что мне неудобно иметь userID
как свойство объекта Product, как показано ниже:
class Product : Object {
@objc dynamic var userID : Int = 0 <--- like this
@objc dynamic var productID : Int = 0
@objc dynamic var name : String = ""
@objc dynamic var categoryID : Int = 0
@objc dynamic var categoryName : String = ""
@objc dynamic var unitPrice: Double = 0.0
@objc dynamic var quantityInCart = 0
@objc dynamic var quantityFromServer = 0
@objc dynamic var descriptionProduct : String = ""
}
class WishList : Object {
@objc dynamic var userID : Int = 0 <--- and like this
var products = List<Product>()
}
и при таком подходе у меня также будут «дубликаты» данных Product для объекта Product с тем же productID, но userID для свойства Product отличается