Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Внешние ключи 
:(
    Опции темы
Testernew
Дата 8.11.2018, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 12.2.2012
Где: Луганск

Репутация: нет
Всего: нет



Добрый вечер,
Скажу сразу что я далеко не спец. по БД, пробую реализовать БД по UML диаграмме, которая была сделана не мной.
Возможно мною кардинально не правильно были поняты некоторые моменты в этой UML диаграмме, буду очень признателен. Между таблицами если я верно понял требуется реализовать связи многие ко многим, пробую сделать через промежуточную таблицу, но при попытке создать ее в PhpMyAdmin вижу ошибку:

#1005 - Can't create table 'annonces.group_right' (errno: 150) (Детали...)
Supports transactions, row-level locking, and foreign keys

транзакции нижнего уровня выключены.

Вот то что мне удалось сделать на данный момент:

Код

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` int(12) NOT NULL,
`Id_group` int(12) NOT NULL,

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





CREATE TABLE `Group_User` (
        `Id_group` int(12) NOT NULL,
        `Id_user`  int(12)  NOT NULL,

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

CREATE TABLE `User_Job` (
        `Id_user` int(12) NOT NULL,
        `Id_job`  int(12)  NOT NULL,

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

CREATE TABLE `User_Log_Host` (
        `Id_user` int(12) NOT NULL,
        `Id_job`  int(12)  NOT NULL,
        `Id_host` int(12)  NOT NULL,

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

CREATE TABLE `Host_Port` (
        `Id_host`  int(12) NOT NULL,
        `Id_port`  int(12)  NOT NULL,

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

CREATE TABLE `Cve_Port` (
        `Id_cve`   int(12) NOT NULL,
        `Id_port`  int(12)  NOT NULL,

        PRIMARY KEY (`Id_cve`, `Id_port`),
        FOREIGN KEY (`Id_cve`)  REFERENCES `Cve`(`Id_cve`),
        FOREIGN KEY (`Id_port`)   REFERENCES `Port`(`Id_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`)
);


Это сообщение отредактировал(а) Testernew - 15.11.2018, 00:51

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  1.png 50,55 Kb
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0921 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.