Modeling Users in Battle-Game App?

Dear List,

I’d welcome some opinions on a modeling challenge I have.

I’m working on a game-app.

Each user in this app has many friends.

Also the user has many enemies.

These friends and enemies are user objects.

So we have 2 possible HABTM (Has And Belongs To Many) relationships.

A user HABTM friends.
A user HABTM enemies.

But, I dont like HABTM.

I’d prefer to have a HMT (Has Many Through).

I think it might be typical that when I replace a HABTM with a HMT,
that I use a model with “Membership” in its name.

So for example, I might Have-Many-Friends in England.

So perhaps I’d have a FriendsLocationMembership model.

Or, I might Have-Many-Enemies because I am a mutant.

So it looks like a Membership model could have an attribute name
“reason” which helps me understand why a particular user might be my
enemy or friend.

So it seems reasonable that I might have 2 or 3 groups of friends for
different reasons:

  • I have money
  • I am a good warrior
  • I am trustworthy
    etc…

Obviously the same goes for my enemies.

Also another question I need to answer is related to battles.

In any battle I’d like to know who are my friends and who are my
enemies.

And of course if I see a friend/enemy I want to know who his friends
and enemies are.

I’m looking for help/ideas on how I might code up the associations in
the models and the syntax in the migrations.

What makes this difficult for me is I only see 2 models:

User
Membership

Or possibly 3 models:

User
FriendMembership
EnemyMembership

Do any of you think this is an interesting topic?

–Audrey

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs