Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Panduan Merancang Basis Data Untuk Sistem Manajemen Inventaris Di MySQL

Tutorial ini memberikan langkah-langkah lengkap untuk merancang skema database Sistem Manajemen Inventaris untuk mengelola pemasok, tenaga penjualan, barang, stok barang, pesanan pembelian, dan pesanan pelanggan.

Catatan :Umumnya, bisnis di ritel dan manufaktur menggunakan sistem persediaan. Di antara kasus penggunaan yang tersebar luas di industri lain, skema database ini dapat digunakan, misalnya, untuk manajemen inventaris rumah sakit guna meningkatkan efisiensi rantai pasokan layanan kesehatan dan mengurangi limbah obat.

Diagram Hubungan Entitas atau desain basis data visual ditunjukkan di bawah ini.

Basis Data Manajemen Inventaris

Anda juga dapat mengunjungi tutorial populer termasuk Cara Menginstal MySQL 8 di Ubuntu 20.04 LTS, Cara Menginstal MySQL 8 di Windows, Cara Menginstal MySQL Workbench Di Ubuntu, Cara Menginstal MySQL 8 Dengan Workbench Di Windows 10, Database RBAC di MySql, Database Blog di MySql, Database Quiz di MySQL, Database Poll &Survey di MySQL, Database Keranjang Belanja Online di MySQL, dan Pelajari Query SQL Dasar Di MySQL.

Basis Data Inventaris

Langkah pertama adalah membuat Database Inventory. Itu dapat dibuat menggunakan kueri seperti yang ditunjukkan di bawah ini.

CREATE SCHEMA `inventory` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Saya telah menggunakan set karakter utf8mb4 untuk mendukung berbagai karakter.

Tabel Pengguna

Di bagian ini, kita akan mendesain Tabel Pengguna untuk menyimpan informasi pengguna. Pengguna dapat mengelola profil mereka sendiri. Selain itu, pengguna dapat menggunakan aplikasi sesuai dengan peran yang diberikan kepada mereka. Anda juga dapat merujuk ke Database RBAC tutorial di MySql untuk menerapkan sistem RBAC lengkap untuk mengelola peran dan izin. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Pengguna.

Id Id unik untuk mengidentifikasi pengguna.
Id Peran Peran pengguna. Bisa Admin, Supplier, Salesperson, dan Customer.
Nama Depan Nama depan pengguna.
Nama Tengah Nama tengah pengguna.
Nama Belakang Nama belakang pengguna.
Seluler Nomor ponsel pengguna. Ini dapat digunakan untuk tujuan login dan registrasi.
Email Email pengguna. Ini dapat digunakan untuk tujuan login dan registrasi.
Hash Kata Sandi Hash kata sandi yang dihasilkan oleh algoritme yang sesuai. Kita harus menghindari penyimpanan kata sandi biasa atau terenkripsi.
Terdaftar Di Kolom ini dapat digunakan untuk menghitung umur pengguna dengan aplikasi tersebut.
Login Terakhir Ini dapat digunakan untuk mengidentifikasi login terakhir pengguna.
Pengantar Pengenalan singkat tentang Pengguna.
Profil Detail pengguna.

Tabel Pengguna dengan batasan yang sesuai ditunjukkan di bawah ini.

CREATE TABLE `inventory`.`user` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`roleId` SMALLINT NOT NULL,
`firstName` VARCHAR(50) NULL DEFAULT NULL,
`middleName` VARCHAR(50) NULL DEFAULT NULL,
`lastName` VARCHAR(50) NULL DEFAULT NULL,
`username` VARCHAR(50) NULL DEFAULT NULL,
`mobile` VARCHAR(15) NULL,
`email` VARCHAR(50) NULL,
`passwordHash` VARCHAR(32) NOT NULL,
`registeredAt` DATETIME NOT NULL,
`lastLogin` DATETIME NULL DEFAULT NULL,
`intro` TINYTEXT NULL DEFAULT NULL,
`profile` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `uq_username` (`username` ASC),
UNIQUE INDEX `uq_mobile` (`mobile` ASC),
UNIQUE INDEX `uq_email` (`email` ASC) );

Tabel Produk

Di bagian ini, kita akan mendesain Tabel Produk untuk menyimpan data produk. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Produk.

Id Id unik untuk mengidentifikasi produk.
Judul Judul produk yang akan ditampilkan di Inventory.
Ringkasan Ringkasan untuk menyebutkan sorotan utama.
Ketik Jenis untuk membedakan antara berbagai jenis produk.
Dibuat Pada Ini menyimpan tanggal dan waktu saat produk dibuat.
Diperbarui Pada Menyimpan tanggal dan waktu pembaruan produk.
Konten Kolom yang digunakan untuk menyimpan detail tambahan produk.

Tabel Produk dengan batasan yang sesuai ditunjukkan di bawah ini.

CREATE TABLE `inventory`.`product` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(75) NOT NULL,
`summary` TINYTEXT NULL,
`type` SMALLINT(6) NOT NULL DEFAULT 0,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`)
);

Meta Produk

Tabel Meta Produk dapat digunakan untuk menyimpan informasi tambahan tentang produk termasuk URL spanduk produk, dll. Di bawah ini adalah deskripsi dari semua kolom Tabel Meta Produk.

Id Id unik untuk mengidentifikasi meta produk.
Id Produk Id produk untuk mengidentifikasi produk induk.
Kunci Kunci yang mengidentifikasi meta.
Konten Kolom yang digunakan untuk menyimpan metadata produk.

Tabel Meta Produk dengan batasan yang sesuai adalah seperti yang ditunjukkan di bawah ini.

CREATE TABLE `inventory`.`product_meta` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`productId` BIGINT NOT NULL,
`key` VARCHAR(50) NOT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_meta_product` (`productId` ASC),
UNIQUE INDEX `uq_product_meta` (`productId` ASC, `key` ASC),
CONSTRAINT `fk_meta_product`
FOREIGN KEY (`productId`)
REFERENCES `inventory`.`product` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

Tabel Kategori dan Tabel Kategori Produk

Di bagian ini, kita akan mendesain Tabel Kategori dan Tabel Kategori Produk untuk menyimpan kategori produk dan pemetaannya. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Kategori.

Id Id unik untuk mengidentifikasi kategori.
Id Induk Id induk untuk mengidentifikasi kategori induk.
Judul Judul kategori.
Judul Meta Judul meta yang akan digunakan untuk judul browser dan SEO.
Siput Slug kategori untuk membentuk URL.
Konten Kolom yang digunakan untuk menyimpan detail kategori.

Tabel Kategori dengan batasan yang sesuai adalah seperti yang ditunjukkan di bawah ini.

CREATE TABLE `inventory`.`category` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`parentId` BIGINT NULL DEFAULT NULL,
`title` VARCHAR(75) NOT NULL,
`metaTitle` VARCHAR(100) NULL DEFAULT NULL,
`slug` VARCHAR(100) NOT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`));

ALTER TABLE `inventory`.`category`
ADD INDEX `idx_category_parent` (`parentId` ASC);
ALTER TABLE `inventory`.`category`
ADD CONSTRAINT `fk_category_parent`
FOREIGN KEY (`parentId`)
REFERENCES `inventory`.`category` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Kategori Produk.

Id Produk Id produk untuk mengidentifikasi produk.
Id Kategori Id kategori untuk mengidentifikasi kategori.

Tabel Kategori Produk dengan batasan yang sesuai adalah seperti yang ditunjukkan di bawah ini.

CREATE TABLE `inventory`.`product_category` (
`productId` BIGINT NOT NULL,
`categoryId` BIGINT NOT NULL,
PRIMARY KEY (`productId`, `categoryId`),
INDEX `idx_pc_category` (`categoryId` ASC),
INDEX `idx_pc_product` (`productId` ASC),
CONSTRAINT `fk_pc_product`
FOREIGN KEY (`productId`)
REFERENCES `inventory`.`product` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_pc_category`
FOREIGN KEY (`categoryId`)
REFERENCES `inventory`.`category` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);

Meja Merek

Di bagian ini, kami akan mendesain Tabel Merek untuk menyimpan data merek. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Merek.

Id Id unik untuk mengidentifikasi merek.
Judul Judul merek yang akan ditampilkan di Inventaris.
Ringkasan Ringkasan menyebutkan sorotan utama.
Dibuat Pada Ini menyimpan tanggal dan waktu saat produk dibuat.
Diperbarui Pada Menyimpan tanggal dan waktu pembaruan produk.
Konten Kolom yang digunakan untuk menyimpan detail tambahan merek.

Tabel Merek dengan batasan yang sesuai ditunjukkan di bawah ini.

CREATE TABLE `inventory`.`brand` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(75) NOT NULL,
`summary` TINYTEXT NULL,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`)
);

Pesan Tabel Tabel

Bagian ini menyediakan tabel untuk mengelola pesanan inventaris. Pesanan dapat dikaitkan dengan Pemasok atau Pelanggan. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Pesanan.

Id Id unik untuk mengidentifikasi pesanan.
Id Pengguna Id pengguna untuk mengidentifikasi Pemasok atau Pelanggan yang terkait dengan pesanan.
Ketik Jenis pesanan yang membedakan antara Purchase Order atau Customer Order.
Status Status pesanan bisa New, Checkout, Paid, Failed, Shipped, Delivered, Returned, dan Complete.
SubTotal Harga Total Barang Pesanan.
Diskon Barang Total diskon untuk Item Pesanan.
Pajak Pajak atas Item Pesanan.
Pengiriman Biaya pengiriman Barang Pesanan.
Total Total harga Pesanan sudah termasuk pajak dan ongkos kirim. Itu tidak termasuk diskon item.
Promo Kode promo Pesanan.
Diskon Total diskon Pesanan berdasarkan kode promo atau diskon toko.
Total Keseluruhan Jumlah total pesanan yang harus dibayar oleh pembeli.
Dibuat Pada Ini menyimpan tanggal dan waktu saat pesanan dibuat.
Diperbarui Pada Ini menyimpan tanggal dan waktu di mana pesanan diperbarui.
Konten Kolom yang digunakan untuk menyimpan detail tambahan pesanan.

Tabel Pesanan dengan batasan yang sesuai adalah seperti yang ditunjukkan di bawah ini.

CREATE TABLE `inventory`.`order` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`userId` BIGINT NOT NULL,
`type` SMALLINT(6) NOT NULL DEFAULT 0,
`status` SMALLINT(6) NOT NULL DEFAULT 0,
`subTotal` FLOAT NOT NULL DEFAULT 0,
`itemDiscount` FLOAT NOT NULL DEFAULT 0,
`tax` FLOAT NOT NULL DEFAULT 0,
`shipping` FLOAT NOT NULL DEFAULT 0,
`total` FLOAT NOT NULL DEFAULT 0,
`promo` VARCHAR(50) NULL DEFAULT NULL,
`discount` FLOAT NOT NULL DEFAULT 0,
`grandTotal` FLOAT NOT NULL DEFAULT 0,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_order_user` (`userId` ASC),
CONSTRAINT `fk_order_user`
FOREIGN KEY (`userId`)
REFERENCES `inventory`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);

Tabel Alamat

Bagian ini menyediakan tabel untuk mengelola alamat pengguna atau pesanan. Alamat pengguna dapat digunakan untuk menyimpan alamat yang terkait dengan pengguna. Alamat pesanan dapat digunakan untuk menyimpan alamat pengiriman untuk pesanan pengiriman ke rumah. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Alamat.

Id Id unik untuk mengidentifikasi alamat.
Id Pengguna ID pengguna untuk mengidentifikasi pengguna yang terkait dengan alamat tersebut.
Id Pesanan Id pesanan untuk mengidentifikasi pesanan yang terkait dengan alamat.
Nama Depan Nama depan pengguna.
Nama Tengah Nama tengah pengguna.
Nama Belakang Nama belakang pengguna.
Seluler Nomor ponsel pengguna.
Email Email pengguna.
Baris 1 Baris pertama untuk menyimpan alamat.
Baris 2 Baris kedua untuk menyimpan alamat.
Kota Kota alamat.
Provinsi Provinsi alamat.
Negara Negara alamat.
Dibuat Pada Ini menyimpan tanggal dan waktu saat pesanan dibuat.
Diperbarui Pada Ini menyimpan tanggal dan waktu di mana pesanan diperbarui.

Tabel Alamat dengan batasan yang sesuai adalah seperti yang ditunjukkan di bawah ini.

CREATE TABLE `inventory`.`address` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`userId` BIGINT NULL DEFAULT NULL,
`orderId` BIGINT NULL DEFAULT NULL,
`firstName` VARCHAR(50) NULL DEFAULT NULL,
`middleName` VARCHAR(50) NULL DEFAULT NULL,
`lastName` VARCHAR(50) NULL DEFAULT NULL,
`mobile` VARCHAR(15) NULL,
`email` VARCHAR(50) NULL,
`line1` VARCHAR(50) NULL DEFAULT NULL,
`line2` VARCHAR(50) NULL DEFAULT NULL,
`city` VARCHAR(50) NULL DEFAULT NULL,
`province` VARCHAR(50) NULL DEFAULT NULL,
`country` VARCHAR(50) NULL DEFAULT NULL,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_address_user` (`userId` ASC),
CONSTRAINT `fk_address_user`
FOREIGN KEY (`userId`)
REFERENCES `inventory`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);

ALTER TABLE `inventory`.`address`
ADD INDEX `idx_address_order` (`orderId` ASC);
ALTER TABLE `inventory`.`address`
ADD CONSTRAINT `fk_address_order`
FOREIGN KEY (`orderId`)
REFERENCES `inventory`.`order` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

Tabel Item

Di bagian ini, kami akan mendesain Item Tabel untuk menyimpan detail barang. Item mewakili item yang disimpan dalam inventaris dan dibeli dari pemasok. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Item.

Id Id unik untuk mengidentifikasi item.
Id Produk Id produk untuk mengidentifikasi produk yang terkait dengan item inventaris.
Id Merek Id merek untuk mengidentifikasi merek yang terkait dengan item inventaris.
Id Pemasok Id pemasok untuk mengidentifikasi pemasok yang terkait dengan item inventaris.
Id Pesanan Id pesanan untuk mengidentifikasi pesanan yang terkait dengan item inventaris.
Dibuat Oleh ID pengguna untuk mengidentifikasi pengguna yang menambahkan item inventaris.
Diperbarui Oleh ID pengguna untuk mengidentifikasi pengguna yang memperbarui item inventaris.
Unit Penyimpanan Stok Id untuk mengidentifikasi item yang ada di stok.
Harga Eceran Maksimum Harga cetak produk yang terkait dengan item tersebut.
Diskon Diskon diberikan oleh pemasok.
Harga Harga saat produk dibeli.
Kuantitas Jumlah total yang diterima di inventaris.
Terjual Jumlah total yang dijual ke pelanggan.
Tersedia Jumlah yang tersedia di stok.
Cacat Total barang cacat yang diterima di inventaris atau dikembalikan oleh pelanggan.
Dibuat Pada Ini menyimpan tanggal dan waktu saat pesanan dibuat.
Diperbarui Pada Ini menyimpan tanggal dan waktu di mana pesanan diperbarui.

Tabel Item dengan batasan yang sesuai adalah seperti yang ditunjukkan di bawah ini.

CREATE TABLE `inventory`.`item` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`productId` BIGINT NOT NULL,
`brandId` BIGINT NOT NULL,
`supplierId` BIGINT NOT NULL,
`orderId` BIGINT NOT NULL,
`sku` VARCHAR(100) NOT NULL,
`mrp` FLOAT NOT NULL DEFAULT 0,
`discount` FLOAT NOT NULL DEFAULT 0,
`price` FLOAT NOT NULL DEFAULT 0,
`quantity` SMALLINT(6) NOT NULL DEFAULT 0,
`sold` SMALLINT(6) NOT NULL DEFAULT 0,
`available` SMALLINT(6) NOT NULL DEFAULT 0,
`defective` SMALLINT(6) NOT NULL DEFAULT 0,
`createdBy` BIGINT NOT NULL,
`updatedBy` BIGINT DEFAULT NULL,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_item_product` (`productId` ASC),
CONSTRAINT `fk_item_product`
FOREIGN KEY (`productId`)
REFERENCES `inventory`.`product` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);

ALTER TABLE `inventory`.`item`
ADD INDEX `idx_item_brand` (`brandId` ASC);
ALTER TABLE `inventory`.`item`
ADD CONSTRAINT `fk_item_brand`
FOREIGN KEY (`brandId`)
REFERENCES `inventory`.`brand` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

ALTER TABLE `inventory`.`item`
ADD INDEX `idx_item_user` (`supplierId` ASC);
ALTER TABLE `inventory`.`item`
ADD CONSTRAINT `fk_item_user`
FOREIGN KEY (`supplierId`)
REFERENCES `inventory`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

ALTER TABLE `inventory`.`item`
ADD INDEX `idx_item_order` (`orderId` ASC);
ALTER TABLE `inventory`.`item`
ADD CONSTRAINT `fk_item_order`
FOREIGN KEY (`orderId`)
REFERENCES `inventory`.`order` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

Tabel Item Pesanan

Bagian ini menyediakan tabel untuk mengelola barang pesanan yang dibeli oleh pelanggan. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Item Pesanan.

Id Id unik untuk mengidentifikasi barang yang dipesan.
Id Produk Id produk untuk mengidentifikasi produk yang terkait dengan barang yang dipesan.
Id Item Id item untuk mengidentifikasi item yang terkait dengan item yang dipesan.
Id Pesanan Id pesanan untuk mengidentifikasi pesanan yang terkait dengan barang pesanan.
SKU SKU produk saat membelinya.
Harga Harga produk saat membelinya.
Diskon Diskon produk saat membelinya.
Kuantitas Jumlah produk yang dipilih oleh pengguna.
Dibuat Pada Ini menyimpan tanggal dan waktu saat item yang dipesan dibuat.
Diperbarui Pada Menyimpan tanggal dan waktu pembaruan item yang dipesan.
Konten Kolom yang digunakan untuk menyimpan detail tambahan dari barang yang dipesan.

Tabel Item Pesanan dengan batasan yang sesuai adalah seperti yang ditunjukkan di bawah ini.

CREATE TABLE `inventory`.`order_item` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`productId` BIGINT NOT NULL,
`itemId` BIGINT NOT NULL,
`orderId` BIGINT NOT NULL,
`sku` VARCHAR(100) NOT NULL,
`price` FLOAT NOT NULL DEFAULT 0,
`discount` FLOAT NOT NULL DEFAULT 0,
`quantity` SMALLINT(6) NOT NULL DEFAULT 0,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_order_item_product` (`productId` ASC),
CONSTRAINT `fk_order_item_product`
FOREIGN KEY (`productId`)
REFERENCES `inventory`.`product` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);

ALTER TABLE `inventory`.`order_item`
ADD INDEX `idx_order_item_item` (`itemId` ASC);
ALTER TABLE `inventory`.`order_item`
ADD CONSTRAINT `fk_order_item_item`
FOREIGN KEY (`itemId`)
REFERENCES `inventory`.`item` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

ALTER TABLE `inventory`.`order_item`
ADD INDEX `idx_order_item_order` (`orderId` ASC);
ALTER TABLE `inventory`.`order_item`
ADD CONSTRAINT `fk_order_item_order`
FOREIGN KEY (`orderId`)
REFERENCES `inventory`.`order` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

Tabel Transaksi

Kami juga membutuhkan tabel transaksi untuk melacak pembayaran pesanan yang dilakukan oleh pembeli dan untuk pembukuan. Kami juga dapat menggunakan tabel yang sama untuk mencatat pengembalian dana sebagian atau penuh dari pesanan. Disebutkan di bawah ini adalah deskripsi dari semua kolom Tabel Transaksi.

Id Id unik untuk mengidentifikasi transaksi.
Id Pengguna ID pengguna untuk mengidentifikasi pengguna yang terkait dengan transaksi.
Id Pesanan Id pesanan untuk mengidentifikasi pesanan yang terkait dengan transaksi.
Kode Id pembayaran yang disediakan oleh gateway pembayaran.
Ketik Jenis transaksi order dapat berupa Kredit atau Debit.
Mode Mode transaksi order bisa Offline, Cash On Delivery, Cheque, Draft, Wired, dan Online.
Status Status transaksi order bisa Baru, Dibatalkan, Gagal, Tertunda, Ditolak, Ditolak, dan Sukses.
Dibuat Pada Ini menyimpan tanggal dan waktu saat transaksi pesanan dibuat.
Diperbarui Pada Ini menyimpan tanggal dan waktu di mana transaksi pesanan diperbarui.
Konten Kolom yang digunakan untuk menyimpan detail tambahan transaksi.

Tabel Transaksi dengan batasan yang sesuai adalah seperti yang ditunjukkan di bawah ini.

CREATE TABLE `inventory`.`transaction` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`userId` BIGINT NOT NULL,
`orderId` BIGINT NOT NULL,
`code` VARCHAR(100) NOT NULL,
`type` SMALLINT(6) NOT NULL DEFAULT 0,
`mode` SMALLINT(6) NOT NULL DEFAULT 0,
`status` SMALLINT(6) NOT NULL DEFAULT 0,
`createdAt` DATETIME NOT NULL,
`updatedAt` DATETIME NULL DEFAULT NULL,
`content` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `idx_transaction_user` (`userId` ASC),
CONSTRAINT `fk_transaction_user`
FOREIGN KEY (`userId`)
REFERENCES `inventory`.`user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);

ALTER TABLE `inventory`.`transaction`
ADD INDEX `idx_transaction_order` (`orderId` ASC);
ALTER TABLE `inventory`.`transaction`
ADD CONSTRAINT `fk_transaction_order`
FOREIGN KEY (`orderId`)
REFERENCES `inventory`.`order` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

Ringkasan

Dalam tutorial ini, kita telah membahas desain database Sistem Manajemen Inventaris untuk menyimpan pengguna dan mengelola inventaris produk. Ini juga menyediakan desain database untuk mengelola pesanan pembelian dan pesanan pelanggan.

Anda dapat mengirimkan komentar Anda untuk bergabung dalam diskusi. Anda mungkin juga tertarik untuk mendesain database aplikasi Blog dan Poll &Survey. Skema database lengkap juga tersedia di GitHub.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Server MySQL telah hilang - tepat dalam 60 detik

  2. Cara Memeriksa Status Server di MySQL Workbench menggunakan GUI

  3. SQL Query Untuk Membuat Tabel Di MySQL

  4. Cara Memeriksa Ukuran Database MySQL di Linux

  5. Query MySql Tingkat Lanjut:Perbarui tabel dengan info dari tabel lain