Я изучаю grails, и я придумал прецедент. В моем случае использования у продукта много пользователей, и каждый пользователь может иметь много ролей.Моделирование доменов с использованием GORM в grails, как представить ассоциацию
Вот мой класс продукта:
class Product {
String name
String description
String vision
Date startDate
Date endDate
static hasMany = [users : User, contributors : User, watchers : User, approvers : User]
static belongsTo = User
static constraints = {
}
}
Вот мой класс User:
class User {
static constraints = {
}
String fullName
String email
static hasMany = [roles : Roles, products : Product]
}
Вот Роли Enum:
public enum Roles {
PRODUCTOWNER ('ProductOwner'),
APPROVER ('Approver'),
CONTRIBUTOR ('Contributor'),
WATCHER ('Watcher')
}
Мой вопрос именно об ассоциации между Продуктом и Пользователем. Я хочу представить, что продукт может иметь много пользователей в разных ролях. Кроме того, каждый пользователь может быть частью нескольких продуктов с другой ролью в каждом продукте. Это правильный способ представить эти отношения? Кроме того, я должен уметь удалять и добавлять пользователей к продуктам и наоборот. Это также означает, что пользователи могут перемещаться между ролями и могут перемещаться внутри и снаружи продуктов. В этом случае я, вероятно, не хочу, чтобы каскады произошли. Как предотвратить автоматические каскады для выполнения операций CRUD для этих отношений?
Спасибо.
Это здорово. Позвольте мне сказать это. Для моих нужд я не уникальное ограничение. Я буду играть с этим и обновить здесь. – motiver