One example of an effort to create a key value store database on the iOS is YapDatabase.
However, I have no experience with it, and would like to understand whether it's worth it to use this, instead of something like Core Data or FMDB.
One critical question I have is: How do I manage object relationships with this database?
If I can avoid object relationships, I'm looking for suggestion or database design tips on how to solve the problem of an object that has many-to-many relationship to another object.
Let's consider one use case (this is just an example, to help solving this problem):
sender <<->> message <<->> recipient
sender has a:
photo_data,
name,
gender,
age,
email,
username,
twitter_id,
facebook_id,
sender_id
recipient has a:
photo_data,
name,
gender,
age,
email,
username,
twitter_id,
facebook_id,
recipient_id
message has a:
text,
rich_text,
picture_data,
voice_data,
shared_url,
message_id
I have thought about using the message_id, sender_id, and recipient_id to relate each model, but is there a better way?