简体   繁体   中英

iphone Core data and entity inheritance

This is a two part question, here is the situation:

I have an app that lists a set of product models. The user should be able to select from this list the product models that they specifically own. They can own more than 1 of the same type of product and should also be able to set a custom name for the products they own. So I set up my data model with two entities. Product, and OwnedProduct. OwnedProduct inherits from the Product entity and adds a customName property.

Question 1: Is this the best way to implement the model or should I be doing something with relationships? Right now I don't have any relationships in place.

The next question involves actually creating an OwnedProduct record from one of the Products that has been selected by the user.

Question 2: Is there a way to take the selected Product object, duplicate it , and then cast it as an OwnedProduct? Or would I have to create a brand new instance of OwnedProduct and then manually assign all of it's properties from the properties of the Product instance?

Question 1: Is this the best way to implement the model or should I be doing something with relationships? Right now I don't have any relationships in place.

Do you plan to have multiple owners within the same context?

Can a single product be owned by different owners with different custom names?

If yes I would take a look at relationships. I would not duplicate a product because of an ownership. If the product changes, it probably should change for all owners.

A possible datamodel for your requirements: 产品所有权数据模型,三个实体:产品,产品所有权和所有者

Question 2: Is there a way to take the selected Product object, duplicate it , and then cast it as an OwnedProduct? Or would I have to create a brand new instance of OwnedProduct and then manually assign all of it's properties from the properties of the Product instance?

As the clone will be a separate instance within your context you have to create a new one and copy all necessary properties. You can speed things up by iterating over NSEntityDescription properties and relationships. There is already a solution to cloning NSManagedObjects on SO

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM