我正在乞求设计一个系统。它必须有一个非常灵活的结构来代表组织。
基本要求很简单:
- 具有容器层次结构(组织单位)
- 容器将包含其他实体(包括其他容器),实体例如:
- 可以包含用户的组
- 日历
- ETC...
- 还需要根据结构促进许可和注册过程。
- 用户\组可以注册到其他容器的不同角色\权限,这将授予他们对所有其他实体具有相同角色的权限,还可以为组和日历定义管理器。
初步想法:
- 使用“复合”设计模式来表示实体:
- [[Interface]] IEntity --> int ID, string Name ...
- 每个实体都将实现相同的接口
- Container Entity 将保存引用这些实体的子项列表。
- 每个实体都将拥有一个“权限树”,它将在叶子上保存用户列表,该树将代表用户作为经理注册到实体的角色和方式。即,如果用户通过组注册为所有者,树将显示:所有者 --> 组 1 --> 用户 1。
沉思:
- 每个实体都应该有自己的 Delete\Add 方法吗?在接口级别定义,或者应该有一个不同的类,某种“实体管理器”,它将处理添加编辑和删除实体的所有任务。
- 我应该如何为我的数据库建模以保存权限树信息?
我很高兴听到有关该主题的任何想法、更正、经验教训或建议。
提前致谢...