Разработка модели данных и разрешение - PullRequest
0 голосов
/ 26 апреля 2018

Я работаю над созданием структурированного интервью приложения.

На высоком уровне My 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.Вопросы здесь:

  1. Я хочу другой набор разрешений на чтение / запись / обновление / удаление по техническим и нетехническим вопросам.Как только разработчикам разрешен доступ для записи по техническим вопросам, и только HR разрешен доступ для записи по нетехническим вопросам и т. Д. Можно ли достичь этого с помощью вышеупомянутой модальной модели, или я должен хранить технические и нетехнические вопросы в двух разных базах данных?

  2. Является ли Hibernate правильным выбором или мне следует использовать Mybatis?

Ссылки приветствуются!

Спасибо!

1 Ответ

0 голосов
/ 27 апреля 2018

Во-первых, вам необходимо различать рабочий процесс приложения и разрешение. Обычно разрешения фокусируются на предоставлении доступа к ресурсам различных типов (например, «члены группы x имеют права на чтение, но не запись на файл y»). Разрешения обычно управляются вне самого приложения.

Рабочий процесс, с другой стороны, говорит "показать пользователям типа x следующее представление вашего приложения и пользователям типа ya другое представление" - например, переполнение стека показывает пользователям с высокой репутацией другой набор инструментов , Это основано на разрешениях, но обычно оно «запекается» в приложении.

Я не знаю правильного ответа для вас, но я подумал бы об этом, прежде чем принять решение о какой-то конкретной структуре.

Чтобы ответить на ваш первый вопрос:

Можно ли достичь этого с помощью модальной информации выше или я должен хранить технические и нетехнические вопросы в двух разных базах данных?

Нет, ваша модель данных неполная. Он не показывает, как вы моделируете пользователей - как ваше приложение знает, какой тип пользователя вошел в систему? Нет абсолютно никакой причины хранить разные типы вопросов в разных базах данных - редко используют разрешения уровня базы данных для обеспечения безопасности на уровне приложений.

Является ли Hibernate правильным выбором или я должен использовать Mybatis?

Выбор не имеет отношения к описываемой вами проблеме.

...