diff --git a/api/Diagram 2023-01-24 09-53-59.uxf b/api/Diagram 2023-01-24 09-53-59.uxf new file mode 100644 index 0000000..995aa27 --- /dev/null +++ b/api/Diagram 2023-01-24 09-53-59.uxf @@ -0,0 +1,22 @@ +10UMLClass200170210120USER +-- +_id: INT_ +email: VARCHAR +password: VARCHAR +name: VARCHAR +created_at: DATE +updated_at: DATEUMLClass20034021090AUTHOR +-- +_id: INT_ +fullname: VARCHAR +created_at: DATE +updated_at: DATERelation40038013040m1=1 +m2=0..*10;10;110;10UMLClass51036013060AUTHOR_PAINTING +-- +_author_id: INT_ +_painting_id: INT_Relation56028050100m1=1 +m2=0..*10;10;10;80UMLClass51021013080PAINTING +-- +_id: INT_ +name: VARCHAR +image_url: VARCHAR \ No newline at end of file diff --git a/api/Diagramme relation entité.png b/api/Diagramme relation entité.png new file mode 100644 index 0000000..69961c4 Binary files /dev/null and b/api/Diagramme relation entité.png differ diff --git a/prisma/migrations/20230306094642_initial_migration/migration.sql b/prisma/migrations/20230306094642_initial_migration/migration.sql new file mode 100644 index 0000000..17bc432 --- /dev/null +++ b/prisma/migrations/20230306094642_initial_migration/migration.sql @@ -0,0 +1,45 @@ +-- CreateTable +CREATE TABLE `User` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `email` VARCHAR(191) NOT NULL, + `password` VARCHAR(191) NOT NULL, + `name` VARCHAR(191) NOT NULL, + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `updated_at` DATETIME(3) NOT NULL, + + UNIQUE INDEX `User_email_key`(`email`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Author` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `fullname` VARCHAR(191) NOT NULL, + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `updated_at` DATETIME(3) NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `Painting` ( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `name` VARCHAR(191) NOT NULL, + `image_url` VARCHAR(191) NOT NULL, + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- CreateTable +CREATE TABLE `PaintingAuthor` ( + `painting_id` INTEGER NOT NULL, + `author_id` INTEGER NOT NULL, + + PRIMARY KEY (`painting_id`, `author_id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- AddForeignKey +ALTER TABLE `PaintingAuthor` ADD CONSTRAINT `PaintingAuthor_painting_id_fkey` FOREIGN KEY (`painting_id`) REFERENCES `Painting`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE `PaintingAuthor` ADD CONSTRAINT `PaintingAuthor_author_id_fkey` FOREIGN KEY (`author_id`) REFERENCES `Author`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/migrations/migration_lock.toml b/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..e5a788a --- /dev/null +++ b/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "mysql" \ No newline at end of file diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 132715d..4de02ae 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -15,3 +15,27 @@ model User { created_at DateTime @default(now()) updated_at DateTime @updatedAt } + +model Author { + id Int @id @default(autoincrement()) + fullname String + created_at DateTime @default(now()) + updated_at DateTime @updatedAt + PaintingAuthor PaintingAuthor[] +} + +model Painting { + id Int @id @default(autoincrement()) + name String + image_url String + PaintingAuthor PaintingAuthor[] +} + +model PaintingAuthor { + painting Painting @relation(fields: [painting_id], references: [id]) + painting_id Int + author Author @relation(fields: [author_id], references: [id]) + author_id Int + + @@id([painting_id, author_id]) +}