0

我正在乞求设计一个系统。它必须有一个非常灵活的结​​构来代表组织。

基本要求很简单:

  1. 具有容器层次结构(组织单位)
  2. 容器将包含其他实体(包括其他容器),实体例如:
    • 可以包含用户的组
    • 日历
    • ETC...
  3. 还需要根据结构促进许可和注册过程。
  4. 用户\组可以注册到其他容器的不同角色\权限,这将授予他们对所有其他实体具有相同角色的权限,还可以为组和日历定义管理器。

初步想法:

  1. 使用“复合”设计模式来表示实体:
    • [[Interface]] IEntity --> int ID, string Name ...
  2. 每个实体都将实现相同的接口
  3. Container Entity 将保存引用这些实体的子项列表。
  4. 每个实体都将拥有一个“权限树”,它将在叶子上保存用户列表,该树将代表用户作为经理注册到实体的角色和方式。即,如果用户通过组注册为所有者,树将显示:所有者 --> 组 1 --> 用户 1。

沉思:

  1. 每个实体都应该有自己的 Delete\Add 方法吗?在接口级别定义,或者应该有一个不同的类,某种“实体管理器”,它将处理添加编辑和删除实体的所有任务。
  2. 我应该如何为我的数据库建模以保存权限树信息?

我很高兴听到有关该主题的任何想法、更正、经验教训或建议。

提前致谢...

4

1 回答 1

1

为了您的沉思,我建议如下:

  1. 假设您现在不知道所有实体并且它们可能具有完全不同的结构,您应该更好地将创建/删除的逻辑封装在实体类中。拥有更多具有默认实现的通用超类将是一个好主意。
  2. 关于权限树。您是否已经为此使用了实体模型?对于您的情况,最好的方法是自上而下,当您已经拥有实体模型时,将实体模型映射到数据库模型会更直接:)
于 2012-08-13T09:06:32.433 回答