1 Востаннє редагувалося Betterthanyou (18.04.2020 14:01:25)

Тема: Чи існує сервіс автоматичного створення схеми БД ?

В мене є MYSQL код для створення БД (я маю на увазі таблиць і зв'язків між ними), я хочу створити схему для кращого візуального сприйняття БД. Чи є якісь автоматичні онлайн сервіси як можуть зробити схему по MYSQL коду ?

Поки що я знайшов
dbdiagram.io - тут потрібний "їх" SQL код
app.sqldbm.com - вже краще, тому що він розуміє команди створення таблиць, але не розуміє CONSTRAINT команд
phpmyadmin - так само не розуміє зв'язків між таблицями (або я не знаю як налаштувати його)

CREATE TABLE `Account_` (
    `Id_` INT NOT NULL AUTO_INCREMENT,
    `FirstName_` VARCHAR(255) NOT NULL,
    `LastName_` VARCHAR(255) NOT NULL,
    `Password_` VARCHAR(255) NOT NULL,
    `PhoneNumber_` VARCHAR(255) NOT NULL UNIQUE,
    `DateOfBirthday_` DATE NOT NULL,
    `Status_` BOOLEAN NOT NULL,
    `Date_` DATETIME NOT NULL,
    `KeyToOrganization_` INT NOT NULL,
    `Token_` VARCHAR(255),
    PRIMARY KEY (`Id_`)
);

CREATE TABLE `AdminAccount_` (
    `Id_` INT NOT NULL AUTO_INCREMENT,
    `KeyToAccount_` INT NOT NULL,
    PRIMARY KEY (`Id_`)
);

CREATE TABLE `Wallet_` (
    `Id_` INT NOT NULL AUTO_INCREMENT,
    `Money_` FLOAT NOT NULL,
    PRIMARY KEY (`Id_`)
);

CREATE TABLE `Group_` (
    `Id_` INT NOT NULL AUTO_INCREMENT UNIQUE,
    `GroupName_` VARCHAR(255) NOT NULL UNIQUE,
    `Description_` VARCHAR(255),
    `AdditionalInformation_` VARCHAR(255) NOT NULL,
    `Date_` DATETIME NOT NULL,
    `Owner_` INT NOT NULL,
    `Visibility_` INT NOT NULL,
    PRIMARY KEY (`Id_`)
);

CREATE TABLE `FinancialTransaction_` (
    `Id_` INT NOT NULL AUTO_INCREMENT,
    `Sum_` FLOAT NOT NULL,
    `Message_` VARCHAR(255) NOT NULL,
    `Date_` DATETIME NOT NULL,
    `KeyToRecipient_` INT NOT NULL,
    `KeyToSender_` INT NOT NULL,
    PRIMARY KEY (`Id_`)
);

CREATE TABLE `Message_` (
    `Id_` INT NOT NULL AUTO_INCREMENT,
    `Message_` VARCHAR(255) NOT NULL,
    `Date_` DATETIME NOT NULL,
    `KeyToRecipient_` INT NOT NULL,
    `KeyToSender_` INT NOT NULL,
    PRIMARY KEY (`Id_`)
);

CREATE TABLE `UserAccount_` (
    `Id_` INT NOT NULL AUTO_INCREMENT,
    `IsAllowSettings_` BOOLEAN NOT NULL,
    `IsAllowLeaderboard_` BOOLEAN NOT NULL,
    `IsAllowTaskboard_` BOOLEAN NOT NULL,
    `KeyToAccount_` INT NOT NULL,
    PRIMARY KEY (`Id_`)
);

CREATE TABLE `Task_` (
    `Id_` INT NOT NULL AUTO_INCREMENT,
    `TaskName_` VARCHAR(255) NOT NULL,
    `TaskDescription_` VARCHAR(255) NOT NULL,
    `Deadline_` DATE NOT NULL,
    `AdditionalInformation_` VARCHAR(255),
    `Date_` DATETIME NOT NULL,
    `KeyToAccount_` INT NOT NULL,
    PRIMARY KEY (`Id_`)
);

CREATE TABLE `Organization_` (
    `Id_` INT NOT NULL AUTO_INCREMENT,
    `OrganizationName_` VARCHAR(255) NOT NULL,
    `Date_` DATETIME NOT NULL,
    PRIMARY KEY (`Id_`)
);

CREATE TABLE `GroupAccountKeys_` (
    `id_` INT NOT NULL AUTO_INCREMENT,
    `GroupKey_` INT NOT NULL,
    `Account_` INT NOT NULL,
    PRIMARY KEY (`id_`)
);

CREATE TABLE `Image_` (
    `id_` INT NOT NULL AUTO_INCREMENT,
    `Title_` VARCHAR(255) NOT NULL UNIQUE,
    `ZImgB64Str` TEXT NOT NULL,
    `Date_` DATETIME NOT NULL,
    `KeyToOrganization_` INT NOT NULL,
    PRIMARY KEY (`id_`)
);

ALTER TABLE `Account_` ADD CONSTRAINT `Account__fk0` FOREIGN KEY (`KeyToOrganization_`) REFERENCES `Organization_`(`Id_`);

ALTER TABLE `AdminAccount_` ADD CONSTRAINT `AdminAccount__fk0` FOREIGN KEY (`KeyToAccount_`) REFERENCES `Account_`(`Id_`);

ALTER TABLE `Wallet_` ADD CONSTRAINT `Wallet__fk0` FOREIGN KEY (`Id_`) REFERENCES `Account_`(`Id_`);

ALTER TABLE `Group_` ADD CONSTRAINT `Group__fk0` FOREIGN KEY (`Owner_`) REFERENCES `Account_`(`Id_`);

ALTER TABLE `FinancialTransaction_` ADD CONSTRAINT `FinancialTransaction__fk0` FOREIGN KEY (`KeyToRecipient_`) REFERENCES `Account_`(`Id_`);

ALTER TABLE `FinancialTransaction_` ADD CONSTRAINT `FinancialTransaction__fk1` FOREIGN KEY (`KeyToSender_`) REFERENCES `Account_`(`Id_`);

ALTER TABLE `Message_` ADD CONSTRAINT `Message__fk0` FOREIGN KEY (`KeyToRecipient_`) REFERENCES `Account_`(`Id_`);

ALTER TABLE `Message_` ADD CONSTRAINT `Message__fk1` FOREIGN KEY (`KeyToSender_`) REFERENCES `Account_`(`Id_`);

ALTER TABLE `UserAccount_` ADD CONSTRAINT `UserAccount__fk0` FOREIGN KEY (`KeyToAccount_`) REFERENCES `Account_`(`Id_`);

ALTER TABLE `Task_` ADD CONSTRAINT `Task__fk0` FOREIGN KEY (`KeyToAccount_`) REFERENCES `Account_`(`Id_`);

ALTER TABLE `GroupAccountKeys_` ADD CONSTRAINT `GroupAccountKeys__fk0` FOREIGN KEY (`GroupKey_`) REFERENCES `Group_`(`Id_`);

ALTER TABLE `GroupAccountKeys_` ADD CONSTRAINT `GroupAccountKeys__fk1` FOREIGN KEY (`Account_`) REFERENCES `Account_`(`Id_`);

ALTER TABLE `Image_` ADD CONSTRAINT `Image__fk0` FOREIGN KEY (`KeyToOrganization_`) REFERENCES `Organization_`(`Id_`);

2 Востаннє редагувалося fed_lviv (18.04.2020 14:22:51)

Re: Чи існує сервіс автоматичного створення схеми БД ?

Betterthanyou написав:

В мене є MYSQL код для створення БД

Betterthanyou написав:

я хочу створити схему

Не дуже розумію Вас, так схема вже створена якщо є код...

Якщо ж Ви маєте на увазі можливість візуального представлення таблиць та їх зв'язків, то чим Вам не догодив - MySQL Workbench?
Також можна спробувати Navicat,...

Betterthanyou написав:

...онлайн сервіси...

GenMyModel,...

Подякували: Betterthanyou, leofun012

3

Re: Чи існує сервіс автоматичного створення схеми БД ?

fed_lviv написав:

MySQL Workbench

Він доступний тільки в Enterprise Edition.

4 Востаннє редагувалося Betterthanyou (18.04.2020 14:51:29)

Re: Чи існує сервіс автоматичного створення схеми БД ?

Вибачаюся, переплутав "схема" слово з "діаграма".  MySQL Workbench - допомогло

5 Востаннє редагувалося Betterthanyou (18.04.2020 14:51:07)

Re: Чи існує сервіс автоматичного створення схеми БД ?

leofun01 написав:
fed_lviv написав:

MySQL Workbench

Він доступний тільки в Enterprise Edition.

Можна завантажити як окрему програму
https://dev.mysql.com/downloads/file/?id=492434

Подякували: leofun011

6

Re: Чи існує сервіс автоматичного створення схеми БД ?

якщо не помиляюсь, можна глянути в DBeaver CE :)

Подякували: Betterthanyou1