设计系统组织结构表示

时间:2012-08-12 14:57:20

标签: design-patterns database-design data-structures architecture structure

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

要求很简单:

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

  5. 初步想法:

    1. 使用“Composite”设计模式表示实体:
      • [[Interface]] IEntity - > int ID,string Name ...
    2. 每个实体都将实现相同的界面
    3. 容器实体将包含将引用这些实体的子项列表。
    4. 每个实体都将拥有一个“权限树”,它将在叶子上保存用户列表,此树将表示用户作为管理员向实体注册的角色和方式。即,如果用户通过组注册为所有者,则树将显示:所有者 - > Group1 - >用户1。
    5. 沉思:

      1. 每个实体都应该有自己的Delete \ Add方法吗?在接口级别定义,或者应该有一个不同的类某种“EntitiesManager”,它将处理添加编辑和删除实体的所有任务。
      2. 我应该如何建模我的数据库以保存权限树信息?
      3. 我会很高兴听到有关该主题的任何想法,更正,经验教训或建议。

        提前致谢...

1 个答案:

答案 0 :(得分:1)

对于你的沉思,我建议遵循:

  1. 假设您现在并不知道所有实体,他们可以拥有 非常不同的结构你应该更好地封装逻辑 在实体类中创建/删除。拥有更多共同的超类 默认实现是一个好主意。
  2. 关于权限树。你已经完成了实体模型吗? 这个?对于您的情况,最好的方法是自上而下,它更多 您可以直接将实体模型映射到数据库模型 已经拥有它:))