java数据模型设计与许可
我正在创建structured interviewing应用程序
在较高级别上,我的DataModal看起来像:
Class Question
id: String
type: ENUM => Technical, NonTechnical
title: String
description: String
Class Technical
Topic: String
Subtopic: String
List <Example>
List <Solution>
Class NonTechnical
List <Solution>
我正在使用Hibernate/JPA和MS Sql。这里的问题是
我想要一套不同的技术性和非技术性问题的读/写/更新/删除权限。例如,只有开发人员可以对技术问题进行写访问,只有人力资源人员可以对非技术问题进行写访问等。是否可以通过上述数据模式实现这一点,或者我应该将技术问题和非技术问题保存在两个不同的数据库中
冬眠是正确的选择还是我应该使用Mybatis
这里的线索是感谢
谢谢
# 1 楼答案
首先,您需要区分应用程序工作流和许可。通常,权限侧重于允许不同类型的资源访问(例如,“组x的成员对文件y具有读取权限,但没有写入权限”)。权限通常在应用程序本身之外进行管理
另一方面,工作流表示“向x类型的用户显示应用程序的以下视图,而向y类型的用户显示不同的视图”——例如,Stack Overflow向声誉较高的用户显示不同的工具集。这是基于权限的,但通常是“烘焙”到应用程序中的
我不知道你的正确答案,但在决定任何特定的框架之前,我会考虑这个问题
要回答第一个问题:
不,您的数据模型不完整。它没有显示你是如何为用户建模的——你的应用程序是如何知道登录的用户是什么类型的?绝对没有理由将不同类型的问题存储在不同的数据库中——使用数据库级别的权限来加强应用程序级别的安全性是很少见的
选择与你描述的问题无关