Что будет эквивалентно следующему коду C # в Ruby (DataMapper ORM)?
class User{
public long Id {get;set;}
}
class Group{
public long Id {get;set;}
public long Owner {get;set;} //User.Id
public DbSet<User> Members {get;set;}
}
Другими словами, я пытаюсь смоделировать группу с владельцем и участниками.Я пришел к следующему, но, похоже, не могу заставить ассоциацию работать правильно.
class User
include DataMapper::Resource
property :id, Serial
has n, :groups
end
class Group
include DataMapper::Resource
property :id, Serial
belongs_to :owner, 'User'
has n, :members, 'User' #something goofy going on here!
end
Вышеприведенное, кажется, вынуждает пользователя принадлежать к группе, но я хочу, чтобы это было необязательно.
И FWIW, это SQL, который я пытаюсь смоделировать
create table users(
id integer primary key autoincrement
, name text
);
create table groups(
id integer primary key autoincrement
, name text unique
);
create table group_users(
group_id integer
, user_id integer
, role char check (role in ('u','o','a')) default 'u'
, primary key(group_id, user_id, role)
, foreign key (group_id) references groups(id)
, foreign key (user_id) references users(id)
);
TIA!