相关疑难解决方法(0)

糟糕的现实世界数据库模式

我们的硕士论文项目正在创建一个数据库模式分析器.作为此基础,我们正在努力量化糟糕的数据库设计.

我们的主管负责分析我们选择的真实世界模式,以便我们识别一些/几个设计问题.这些问题将用作架构分析器的起点.

找到一个好的模式有点困难,因为我们不想要一个在所有方面都设计得很好的模式,而是一个更"罕见到中等"的模式.

我们已经安排了以下用于分析的模式:维基媒体,moodle和drupal.不确定每个适合的类别.架构没有必要是开源的.

使用的数据库引擎并不重要,但我们希望专注于SQL服务器,Posgresql和Oracle.

目前,文学将被推迟,因为这项任务应该给我们提供可以在论文中使用的真实世界的例子.即"设计X被我们认为是糟糕的设计,我们的分析仪确定并建议改进",而不是提出人为的例子.

当我们准备好某种工具时,我会更新这篇文章.

sql-server postgresql database-design anti-patterns

13
推荐指数
3
解决办法
2742
查看次数

我的基于角色的访问控制是否可行?

我在我的PHP项目中设计了一个非常简单的RBAC(基于角色的访问控制)系统,在给它一些想法之后我想出了一个解决方案,但是对于构建业务系统我不太了解我不确定是否有,或将是,我的解决方案的任何主要设计缺陷.

基本上,我想给用户一组"角色".我将使用这些角色来允许或拒绝访问应用程序上的某些功能.

这是角色表:

# Roles
    - id [auto-increment, unsigned]
    - role [string, length:50]

# User_Roles
    - user_id [FK:user_id, unsigned]
    - role_id [FK:roles_id, unsigned]

Note: user_id and role_id to be unique index
Run Code Online (Sandbox Code Playgroud)

我担心的问题是数据库中没有关于角色实际做什么的信息.但后来我开始思考这是否重要.因为如果角色具有有意义的名称和结构,那么您可以查询user_roles表以获取所有用户角色,然后在代码中使用以下内容:

# Fetch user with ID 1 from database
$user = User::find(1);

# Fetch the roles the user has from the database
# @returns : Array of roles
$userRoles = $user->roles()

# $userRoles = ['newmember', 'member.post', 'member.chat']

# Can the user send a message?
if(in_array('member.message', $userRoles)
{ …
Run Code Online (Sandbox Code Playgroud)

php rbac

6
推荐指数
1
解决办法
2508
查看次数