Question: iOS noob checking in.

I've been learning awesome Core Data framework and wondered if there is any naming convention for Core Data relationship names.

It's not so clear since in usual SQL databases, you don't explicitly define names for relationships although I understand that Core Data isn't really a conventional sense of database.

Thank you in advance!

Answer: 
First of all: CD is an ORM. So its view on data is a view on an object graph not a view on SQL relationships.

Second: Therefore there is no special naming convention. The naming conventions of Objective-C are used as usual, because it models a usual object graph, see above.

Third: You said correctly that to-many relationships has a plural form while to-one relationships has a singular form. But it is not correct that you use the name of the destination table^Wtype to name it, if you live outside [hungary](http://en.wikipedia.org/wiki/Hungarian_notation). ;-) In many cases – as in your example – the result is such "type name", but there is no such rule. Let's have another example:

You have an entity type `Group` that refers to members of type `Person` and has a leader of type `Person`. Applying your rule the result would be (using Core Data or not):

```
@interface Group
@property Person *person;
@property NSSet *persons;
@end

```

This is obviously wrong. The names should be:

```
@interface Group
@property Person *leader;
@property NSSet *members;
@end

```

This are obviously no type names.
Okay, so actually there wasn't such thing as naming convention per se. But simply use the entity name of what relationship connect to.

So for example, User <->> Note where User entity has to-many relationship to Note, we can name the relationship from User to Note as 'notes' while naming from Note to User as simply 'user'. Pluralization is used for relationship with to-many Type.

I feel pretty stupid.