开发者

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:

iphone Core data and entity inheritance

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜