我有以下模型:
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。
除此之外,如何解决这个问题?