【发布时间】:2011-03-24 05:11:08
【问题描述】:
是否有一个数据库可以为您提供参照完整性的好处并能够使用 SQL 类型语言进行查询,同时还允许根据其数据属性以及它们之间的关系来松散地定义实体?
例如采用具有权限、用户、用户组和角色的 RBAC 类型模型。复杂/灵活的模型可能具有以下规则:
- 角色可以拥有一个或多个权限,并且一个权限可以属于一个或多个角色
- 用户可以拥有一个或多个权限,并且一个权限可以属于一个或多个用户
- 用户组可以拥有一个或多个权限,并且一个权限可以属于一个或多个用户组
- 用户可以拥有一个或多个角色,并且一个角色可以属于一个或多个用户
- 用户组可以有一个或多个角色,一个角色可以属于一个或多个用户组
- 角色可以有一个或多个角色,一个角色可以属于一个或多个角色
在 RDBMS 中对上述内容进行建模将涉及创建大量交叉表。理想情况下,我想在数据库中定义的只是实体本身(用户、角色等)以及一些强制性属性。其他一切都将是动态的(即不需要 DDL),例如我可以创建一个具有未预定义的新属性的用户。我还可以在尚未预定义的实体之间创建关系,尽管数据库会像普通 RDBMS 一样处理参照完整性。
通过创建一个表来存储实体和另一个表来存储关系等,在 RDBMS 中可以在一定程度上实现上述目标,但这会使执行简单查询所需的 SQL 过于复杂,并且还可能影响性能。
【问题讨论】:
-
+1 我也在找something like那个
标签: database nosql rdbms referential-integrity object-oriented-database