我有以下模型:
User
...
Group
...
Sharing
objectId (Either UserId GroupId)
在Sharing
实体中,我想存储UserId
或GroupId
区分它们。简单地使用Either
不起作用:
- 不在范围内:类型构造函数或类“UserId”
- 不在范围内:类型构造函数或类“GroupId”
添加新的 sum 类型也不起作用:
data SharingIdType = SharingUserId UserId | SharingGroupId GroupId
- 不在范围内:类型构造函数或类“SharingIdType”
移动SharingIdType
到另一个模块是不可能的,因为它使用UserId
和GroupId
类型。我看到的唯一方法是为每种共享类型创建一个实体,例如UserSharing
/ GroupSharing
。
除此之外,如何解决这个问题?