你如何为朋友建模 - 在Grails中建立友谊关系?到目前为止,我的User类有很多粉丝
class User {
//Searchable plugin
static searchable = true
String userId
String password
boolean enabled = true
// For Spring Security plugin's user registration.
String email
String userRealName
boolean emailShow
Date dateCreated
Profile profile
static hasMany = [
posts : Post,
tags : Tag,
following : User,
authorities : Role,
notifications: Notification,
locations: Location,
incomingLocations:IncomingLocation,
]
static belongsTo = Role
static constraints = {
userId(blank: false, size:3..20, unique: true)
password(blank: false)
dateCreated()
profile(nullable: true)
userRealName(nullable: true, blank: true)
email(nullable: true, blank: true)
}
static mapping = {
profile lazy:false
}
}
但是我想改变以下内容:用户之类的友谊:友谊和创建友谊课程如下:
class Friendship {
static belongsTo= [user:User]
User friend2
boolean areFriends
}
这是一个理想的实施吗?
你将如何实施握手(接受/拒绝未决的友谊)?
答案 0 :(得分:3)
您可能不需要直接为友谊建模。您可以拥有一个将用户关联为朋友的hasMany关系。在有人接受FriendRequest之前,您不会创建该关系。如果他们不再想成为朋友,那么只需删除2个用户之间的关系。
class User {
static hasMany = [friends:User]
}
class FriendRequest {
User fromUser
User toUser
}
这样,友谊不需要做两件事(关联用户和跟踪状态)。和朋友成为一种自然的物体关系,可以使一些事情变得更容易优化。