@nekolov

Все ли связи верны на этой uml диаграмме?

Здравствуйте,
Недавно я уже задавал вопрос насчет БД на этом ресурсе, и получил хорошие ответы. Собственно настал второй раз :)
Сразу скажу что UML диаграмму делал не я, она попала ко мне в таком виде, нужно реализовать базу(mysql) на ее основе, дело в том что либо в ней есть серьезные ошибки либо я просто не могу ее верно понять.

1. Не могу понять каким образом будет определятся принадлежность пользователя к группе(в таблице user должно быть еще одно поле...)

2. Таблица Port(не могу понять почему ее автор сделал красным цветом), помоем в ней нахватает тоже поля с id

Имеет смысл объединить некоторые таблицы? Так как синтаксис запросов мне кажется будет не совсем легкий.
5be9d37499e18442234739.png

Если у кого то хватит сил мне помочь, буду безумно благодарен.

Автор сказал что будут использованы 'OPEN API'(может это только для меня непонятно) у меня по этому запросу находит Swagger с которым я немного работал и если я верно понял его суть то он служит для так сказать наглядного взаимодействия (запросы посредством web интерфейса) и документирования работы с REST контроллером. Но какое он отношение имеет к БАЗАМ данных я сижу и не могу понять.

Задача:
В проект который реализован в java framework 'SpringBoot' и с использованием hibernate и класса реализующего CRUD который называется:
import org.springframework.data.repository.CrudRepository;
реализовать данную БД.

Задача:
В проект который реализован в java framework 'SpringBoot' и с использованием hibernate и класса реализующего CRUD который называется:
import org.springframework.data.repository.CrudRepository;
реализовать данную БД.

Если я верно понял принцип hibernate то мне не придется вообще создавать данную базу. Просто требуется объявить в моем приложении классы сущности такие как (port, host cve итд) и уже ИСПОЛЬЗУЯ аннотации предоставленные HIBERNATE связывать эти таблицы, и дальше уже используя функционал CrudRepository(класс реализующий CRUD) Создавать/Читать и. т. д из базы(пишу так как понимаю на данном этапе)
Единственное и самое важное что я пытаюсь и не могу понять это как будут реализована данная база? В моем понимании КЛАСС = ТАБЛИЦА, Или я могу ложить в базу НЕ указывая ТАБЛИЦУ, три сущности HOST, PORT, CVE и уже HIBERNATE будет создавать дополнительные таблицы? Ключи, связи между ними?

Заранее благодарю всех!

Вот что у меня пока получилось на данный момент:
Повторюсь что я не уверен что сам начинаю разбираться в БД и не уверен что верно понял суть этой UML диаграммы.
CREATE TABLE `Right` (
  `Id_right` int(12) NOT NULL AUTO_INCREMENT,
  `Descr_Right` varchar(32) NOT NULL,
  PRIMARY KEY (`id_right`)
);

CREATE TABLE `Group` (
 `Id_group` int(12) NOT NULL AUTO_INCREMENT,
 `Decsr_Group` varchar(32) NOT NULL,
  PRIMARY KEY (`id_group`)
);






CREATE TABLE `Group_Right` (
        `Id_right` integer NOT NULL,
        `Id_group` integer  NOT NULL,

        PRIMARY KEY (`Id_right`, `Id_group`),
        FOREIGN KEY (`Id_right`) REFERENCES `Right`,
        FOREIGN KEY (`Id_group`) REFERENCES `Group`
);

CREATE TABLE `Group_User` (
        `Id_group` integer NOT NULL,
        `Id_user` integer  NOT NULL,

        PRIMARY KEY (`Id_group`, `Id_user`),
        FOREIGN KEY (`Id_group`) REFERENCES Group,
        FOREIGN KEY (`Id_user`) REFERENCES User
);

CREATE TABLE `User_Job` (
        `Id_user` integer NOT NULL,
        `Id_job` integer  NOT NULL,

        PRIMARY KEY (`Id_user`, `Id_job`),
        FOREIGN KEY (`Id_user`) REFERENCES `User`,
        FOREIGN KEY (`Id_job`)  REFERENCES `Job`
);

CREATE TABLE `User_Log_Host` (
        `Id_user` integer NOT NULL,
        `Id_job` integer  NOT NULL,
        `Id_host` integer  NOT NULL,

        PRIMARY KEY (`Id_user`, `Id_job`, `Id_host`),
        FOREIGN KEY (`Id_user`)  REFERENCES `User`,
        FOREIGN KEY (`Id_job`)   REFERENCES `Job`,
        FOREIGN KEY (`Id_host`)  REFERENCES `Host`
);

CREATE TABLE `Host_Port` (
        `Id_host` integer NOT NULL,
        `Id_port`  integer  NOT NULL,

        PRIMARY KEY (`Id_host`, `Id_port`),
        FOREIGN KEY (`Id_host`)  REFERENCES `Host`,
        FOREIGN KEY (`Id_port`)   REFERENCES `Port`
);

CREATE TABLE `Cve_Port` (
        `Id_cve`   integer NOT NULL,
        `Id_port`  integer  NOT NULL,

        PRIMARY KEY (`Id_cve`, `Id_port`),
        FOREIGN KEY (`Id_cve`)  REFERENCES `Cve`,
        FOREIGN KEY (`Id_port`)   REFERENCES `Port`
);






CREATE TABLE `User` (
  `Id_user` int(12) NOT NULL AUTO_INCREMENT,
  `User` varchar(32) NOT NULL,
  `Pass` varchar(32) NOT NULL,
  PRIMARY KEY (`id_user`)
);

CREATE TABLE `Log` (
 `Id_log` int(12) NOT NULL AUTO_INCREMENT,
 `Nom_log` varchar(32) NOT NULL,
  PRIMARY KEY (`id_log`)
);

CREATE TABLE `Job` (
 `Id_job` int(12) NOT NULL AUTO_INCREMENT,
 `Job_name` varchar(32) NOT NULL,
  PRIMARY KEY (`id_job`)
);

CREATE TABLE `Host` (
 `Id_host` int(12) NOT NULL AUTO_INCREMENT,
 `Name` varchar(32) NOT NULL,
 `Os_info` varchar(32) NOT NULL,
  PRIMARY KEY (`id_host`)
);

CREATE TABLE `Port` (
  `Id_port` int(12) NOT NULL AUTO_INCREMENT,
  `Service_p` varchar(32) NOT NULL,
  `Service_v` varchar(32) NOT NULL,
  PRIMARY KEY (`id_port`)
);

CREATE TABLE `Cve` (
  `Id_cve` int(12) NOT NULL AUTO_INCREMENT,
  `Service_c` varchar(32) NOT NULL,
  `Descr_c` varchar(32) NOT NULL,
  PRIMARY KEY (`Id_cve`)
);
  • Вопрос задан
  • 380 просмотров
Пригласить эксперта
Ответы на вопрос 2
Therapyx
@Therapyx
Data Science
таблица ужасная, везде тупо раскиданно от нуля до n, связей вообще минимум. Логика ели видна. Даже ассоциация сделана не по правилам.
1. Не могу понять каким образом будет определятся принадлежность пользователя к группе(в таблице user должно быть еще одно поле...)

верно мыслите.
2. Таблица Port(не могу понять почему ее автор сделал красным цветом), помоем в ней нахватает тоже поля с id

42, порт имеет много хостов и наоборот))

Не исключаю, что и я могу сказать пургу, ибо не работаю так часто с проектировкой БД... Но подпишусь и мне очень интересно послушать что-то положительное о ней ))
Ответ написан
Комментировать
@vism
1. Тут вобще нигде не проставлены ИДшники. Это не схема БД, а логика взаимодействия. Так что все норм. Схему БД вам сделать уже надо.
2. Порт вобще через таблицу связи тут, там и ненадо ИД.
3. Что такое ОпенАпи интересно тоже) А у него вы не спросили?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы