{"id":23893945,"url":"https://github.com/rammm2005/schema-ecc","last_synced_at":"2025-08-16T15:13:20.195Z","repository":{"id":210711743,"uuid":"727257250","full_name":"rammm2005/schema-ECC","owner":"rammm2005","description":"Schema of Simple Database make with SQL","archived":false,"fork":false,"pushed_at":"2023-12-19T15:33:54.000Z","size":70,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-04T14:50:00.283Z","etag":null,"topics":["database","eccomerce","schema","sql"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rammm2005.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-12-04T14:00:22.000Z","updated_at":"2024-10-10T10:23:39.000Z","dependencies_parsed_at":"2023-12-19T18:32:21.372Z","dependency_job_id":null,"html_url":"https://github.com/rammm2005/schema-ECC","commit_stats":null,"previous_names":["rammm2005/schema-ecc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rammm2005%2Fschema-ECC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rammm2005%2Fschema-ECC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rammm2005%2Fschema-ECC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rammm2005%2Fschema-ECC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rammm2005","download_url":"https://codeload.github.com/rammm2005/schema-ECC/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240277600,"owners_count":19775934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","eccomerce","schema","sql"],"created_at":"2025-01-04T14:50:03.526Z","updated_at":"2025-02-23T06:24:07.418Z","avatar_url":"https://github.com/rammm2005.png","language":"HTML","readme":"# Database Schema Online ECC\n\n## Run This First \n```\nCREATE DATABASE online_shop;\nUSE online_shop;\n```\nFor make the Database and Using the Database\n\n## Table: kategori\n\n| Column         | Data Type                 | Description                         |\n| -------------- | ------------------------- | ----------------------------------- |\n| id_kategori    | CHAR(5) NOT NULL          | Primary Key                         |\n| nama_kategori  | VARCHAR(50) NOT NULL      | Category Name                       |\n| created_at     | DATETIME(4) NOT NULL      | Timestamp of Creation               |\n| update_at      | DATETIME(4) NOT NULL      | Timestamp of Last Update            |\n\n---\n\n## Table: penjual\n\n| Column         | Data Type                 | Description                         |\n| -------------- | ------------------------- | ----------------------------------- |\n| id_penjual     | CHAR(5) NOT NULL          | Primary Key                         |\n| nama_penjual   | VARCHAR(50) NOT NULL      | Seller's Name                       |\n| jalan          | VARCHAR(150)              | Seller's Address                    |\n| id_alamat      | INT(11) NOT NULL          | Foreign Key to alamat.id_alamat     |\n| email          | VARCHAR(50) NOT NULL      | Email Address of the Seller         |\n| no_tlp         | VARCHAR(15) NOT NULL      | Phone Number of the Seller          |\n| created_at     | DATETIME(4) NOT NULL      | Timestamp of Creation               |\n| update_at      | DATETIME(4) NOT NULL      | Timestamp of Last Update            |\n| jenis_kelamin  | ENUM('cowok', 'cewek')    | Gender of the Seller                |\n| status_penjual | BOOLEAN DEFAULT(1)        | Status of the Seller                |\n| FOREIGN KEY(id_alamat) REFERENCES alamat(id_alamat) ON DELETE CASCADE ON UPDATE CASCADE |\n\n---\n\n## Table: barang\n\n| Column         | Data Type                 | Description                         |\n| -------------- | ------------------------- | ----------------------------------- |\n| id_barang      | CHAR(5) NOT NULL          | Primary Key                         |\n| merk           | VARCHAR(50) NOT NULL      | Brand of the Product                |\n| harga          | FLOAT(11) NOT NULL         | Price of the Product                |\n| deskripsi      | TEXT NOT NULL             | Description of the Product          |\n| id_kategori    | CHAR(5) NOT NULL          | Foreign Key to kategori.id_kategori |\n| id_penjual     | CHAR(5) NOT NULL          | Foreign Key to penjual.id_penjual   |\n| created_at     | DATETIME(4) NOT NULL      | Timestamp of Creation               |\n| update_at      | DATETIME(4) NOT NULL      | Timestamp of Last Update            |\n| FOREIGN KEY(id_kategori) REFERENCES kategori(id_kategori) ON DELETE CASCADE ON UPDATE CASCADE |\n| FOREIGN KEY(id_penjual) REFERENCES penjual(id_penjual) ON DELETE CASCADE ON UPDATE CASCADE |\n\n---\n\n## Table: pelanggan\n\n| Column         | Data Type                 | Description                         |\n| -------------- | ------------------------- | ----------------------------------- |\n| id_pelanggan   | CHAR(5) NOT NULL          | Primary Key                         |\n| nama_pelanggan | VARCHAR(50) NOT NULL      | Customer's Name                     |\n| jalan          | VARCHAR(150)              | Customer's Address                  |\n| tgl_lahir      | DATE NOT NULL             | Date of Birth of the Customer       |\n| jenis_kelamin  | ENUM('cowok', 'cewek', 'kustom') | Gender of the Customer         |\n| id_alamat      | INT(11) NOT NULL          | Foreign Key to alamat.id_alamat     |\n| email          | VARCHAR(50) NOT NULL      | Email Address of the Customer       |\n| no_tlp         | VARCHAR(50) NOT NULL      | Phone Number of the Customer        |\n| created_at     | DATETIME(4) NOT NULL      | Timestamp of Creation               |\n| update_at      | DATETIME(4) NOT NULL      | Timestamp of Last Update            |\n| FOREIGN KEY(id_alamat) REFERENCES alamat(id_alamat) ON DELETE CASCADE ON UPDATE CASCADE |\n\n---\n\n## Table: alamat\n\n| Column         | Data Type                 | Description                         |\n| -------------- | ------------------------- | ----------------------------------- |\n| id_alamat      | INT(11) AUTO_INCREMENT NOT NULL | Primary Key                   |\n| kode_pos       | INT(10) NOT NULL          | Postal Code                         |\n| kabupaten      | VARCHAR(50)               | District                            |\n| kecamatan      | VARCHAR(50)               | Sub-district                        |\n| provinsi       | VARCHAR(50) NOT NULL      | Province                            |\n| jalan          | VARCHAR(100) NOT NULL     | Street Address                      |\n\n---\n\n## Table: rating\n\n| Column         | Data Type                 | Description                         |\n| -------------- | ------------------------- | ----------------------------------- |\n| id_rating      | INT(11) NOT NULL AUTO_INCREMENT | Primary Key                   |\n| id_barang      | CHAR(5) NOT NULL          | Foreign Key to barang.id_barang     |\n| ulasan         | TEXT NOT NULL             | Customer's Review                   |\n| bintang        | INT(5) NOT NULL           | Rating in Stars (1-5)               |\n| id_pelanggan   | CHAR(5) NOT NULL          | Foreign Key to pelanggan.id_pelanggan |\n| created_at     | DATETIME(4) NOT NULL      | Timestamp of Creation               |\n| update_at      | DATETIME(4) NOT NULL      | Timestamp of Last Update            |\n| FOREIGN KEY(id_barang) REFERENCES barang(id_barang) ON DELETE CASCADE ON UPDATE CASCADE |\n| FOREIGN KEY(id_pelanggan) REFERENCES pelanggan(id_pelanggan) ON DELETE CASCADE ON UPDATE CASCADE |\n\n---\n\n## Table: kurir\n\n| Column         | Data Type                 | Description                         |\n| -------------- | ------------------------- | ----------------------------------- |\n| id_kurir       | CHAR(5) NOT NULL          | Primary Key                         |\n| nama_kurir     | VARCHAR(50) NOT NULL      | Courier's Name                      |\n| alamat         | VARCHAR(100)              | Courier's Address                   |\n| status_kurir   | BOOLEAN DEFAULT(1)        | Status of the Courier               |\n| created_at     | DATETIME(4) NOT NULL      | Timestamp of Creation               |\n| update_at      | DATETIME(4) NOT NULL      | Timestamp of Last Update            |\n\n---\n\n## Table: jenis_pembayaran\n\n| Column         | Data Type                 | Description                         |\n| -------------- | ------------------------- | ----------------------------------- |\n| id_pembayaran  | CHAR(5) NOT NULL          | Primary Key                         |\n| tipe_pembayaran| VARCHAR(50) NOT NULL      | Type of Payment                     |\n| status_pembayaran| BOOLEAN DEFAULT(1)      | Status of the Payment               |\n| created_at     | DATETIME(4) NOT NULL      | Timestamp of Creation               |\n| update_at      | DATETIME(4) NOT NULL      | Timestamp of Last Update            |\n\n---\n\n## Table: orders\n\n| Column         | Data Type                 | Description                         |\n| -------------- | ------------------------- | ----------------------------------- |\n| id_order       | CHAR(5) NOT NULL          | Primary Key                         |\n| jumlah_order   | INT(10) NOT NULL          | Quantity of Products in the Order   |\n| total_harga    | INT(17) NOT NULL          | Total Price of the Order            |\n| alamat_tujuan  | VARCHAR(100) NOT NULL     | Delivery Address                    |\n| tgl_order      | DATE NOT NULL             | Order Date                          |\n| id_pembayaran  | CHAR(5) NOT NULL          | Foreign Key to jenis_pembayaran.id_pembayaran |\n| id_barang      | CHAR(5) NOT NULL          | Foreign Key to barang.id_barang     |\n| id_kurir       | CHAR(5) NOT NULL          | Foreign Key to kurir.id_kurir       |\n| id_penjual     | CHAR(5) NOT NULL          | Foreign Key to penjual.id_penjual   |\n| id_pelanggan   | CHAR(5) NOT NULL          | Foreign Key to pelanggan.id_pelanggan |\n| created_at     | DATETIME(4) NOT NULL      | Timestamp of Creation               |\n| update_at      | DATETIME(4) NOT NULL      | Timestamp of Last Update            |\n| FOREIGN KEY(id_barang) REFERENCES barang(id_barang) ON DELETE CASCADE ON UPDATE CASCADE |\n| FOREIGN KEY(id_kurir) REFERENCES kurir(id_kurir) ON DELETE CASCADE ON UPDATE CASCADE |\n| FOREIGN KEY(id_penjual) REFERENCES penjual(id_penjual) ON DELETE CASCADE ON UPDATE CASCADE |\n| FOREIGN KEY(id_pelanggan) REFERENCES pelanggan(id_pelanggan) ON DELETE CASCADE ON UPDATE CASCADE |\n| FOREIGN KEY(id_pembayaran) REFERENCES jenis_pembayaran(id_pembayaran) ON DELETE CASCADE ON UPDATE CASCADE |\n\n---\n\n## Table: jasa_pengiriman\n\n| Column         | Data Type                 | Description                         |\n| -------------- | ------------------------- | ----------------------------------- |\n| kode_pengiriman| CHAR(5) NOT NULL          | Primary Key                         |\n| nama_pengiriman| VARCHAR(255) NOT NULL     | Name of the Delivery Service        |\n| STATUS         | BOOLEAN DEFAULT(1)        | Status of the Delivery Service      |\n| created_at     | DATETIME(4) NOT NULL      | Timestamp of Creation               |\n| update_at      | DATETIME(4) NOT NULL      | Timestamp of Last Update            |\n\n\n# Study Case\nFor AVG\n```\n-- 1. Average Rating for Each Product\nSELECT id_produk, AVG(bintang) AS avg_rating\nFROM rating\nGROUP BY id_produk;\n\n-- 2. Average Price of Products by Category\nSELECT K.nama_kategori, AVG(P.harga) AS avg_price\nFROM produk P\nJOIN kategori K ON P.id_kategori = K.id_kategori\nGROUP BY K.nama_kategori;\n\n-- 3. Average Order Quantity\nSELECT AVG(jumlah_order) AS avg_order_quantity\nFROM orders;\n\n-- 4. Average Order Total Price\nSELECT AVG(total_harga) AS avg_order_total_price\nFROM orders;\n\n-- 5. Average Price of Products Sold by Each Seller\nSELECT P.nama_penjual, AVG(B.harga) AS avg_price\nFROM produk B\nJOIN penjual P ON B.id_penjual = P.id_penjual\nGROUP BY P.nama_penjual;\n\n-- 6. Average Number of Orders per Customer\nSELECT id_pelanggan, AVG(jumlah_order) AS avg_orders_per_customer\nFROM orders\nGROUP BY id_pelanggan;\n\n-- 7. Average Rating for Each Category\nSELECT K.nama_kategori, AVG(R.bintang) AS avg_rating\nFROM kategori K\nLEFT JOIN produk B ON K.id_kategori = B.id_kategori\nLEFT JOIN rating R ON B.id_produk = R.id_produk\nGROUP BY K.nama_kategori;\n\n-- 8. Average Price of Products Sold by Each Seller in Each Category\nSELECT P.nama_penjual, K.nama_kategori, AVG(B.harga) AS avg_price\nFROM produk B\nJOIN penjual P ON B.id_penjual = P.id_penjual\nJOIN kategori K ON B.id_kategori = K.id_kategori\nGROUP BY P.nama_penjual, K.nama_kategori;\n\n-- 9. Average Rating by Gender for Each Product\nSELECT R.id_produk, P.jenis_kelamin, AVG(R.bintang) AS avg_rating\nFROM rating R\nJOIN pelanggan P ON R.id_pelanggan = P.id_pelanggan\nGROUP BY R.id_produk, P.jenis_kelamin;\n\n-- 10. Average Order Quantity by Product\nSELECT id_produk, AVG(jumlah_order) AS avg_order_quantity\nFROM orders\nGROUP BY id_produk;\n\n-- 11. Average Price of Products Sold by Each Seller by Gender\nSELECT P.nama_penjual, Pel.jenis_kelamin, AVG(B.harga) AS avg_price\nFROM produk B\nJOIN penjual P ON B.id_penjual = P.id_penjual\nJOIN pelanggan Pel ON P.id_penjual = Pel.id_alamat\nGROUP BY P.nama_penjual, Pel.jenis_kelamin;\n\n-- 12. Average Order Quantity by Seller\nSELECT id_penjual, AVG(jumlah_order) AS avg_order_quantity\nFROM orders\nGROUP BY id_penjual;\n\n-- 13. Average Price of Products Sold in Each Province\nSELECT A.provinsi, AVG(B.harga) AS avg_price\nFROM produk B\nJOIN penjual P ON B.id_penjual = P.id_penjual\nJOIN alamat A ON P.id_alamat = A.id_alamat\nGROUP BY A.provinsi;\n\n-- 14. Average Order Total Price by Seller\nSELECT id_penjual, AVG(total_harga) AS avg_order_total_price\nFROM orders\nGROUP BY id_penjual;\n\n-- 15. Average Price of Products Sold in Each City\nSELECT A.kabupaten, AVG(B.harga) AS avg_price\nFROM produk B\nJOIN penjual P ON B.id_penjual = P.id_penjual\nJOIN alamat A ON P.id_alamat = A.id_alamat\nGROUP BY A.kabupaten;\n\n-- 16. Average Rating for Each Product by Gender\nSELECT R.id_produk, Pel.jenis_kelamin, AVG(R.bintang) AS avg_rating\nFROM rating R\nJOIN pelanggan Pel ON R.id_pelanggan = Pel.id_pelanggan\nGROUP BY R.id_produk, Pel.jenis_kelamin;\n\n-- 17. Average Price of Products Sold by Each Seller in Each City\nSELECT P.nama_penjual, A.kabupaten, AVG(B.harga) AS avg_price\nFROM produk B\nJOIN penjual P ON B.id_penjual = P.id_penjual\nJOIN alamat A ON P.id_alamat = A.id_alamat\nGROUP BY P.nama_penjual, A.kabupaten;\n\n-- 18. Average Rating by Age Group for Each Product\nSELECT R.id_produk, \n    CASE \n        WHEN YEAR(CURRENT_DATE) - YEAR(Pel.tgl_lahir) BETWEEN 18 AND 30 THEN '18-30'\n        WHEN YEAR(CURRENT_DATE) - YEAR(Pel.tgl_lahir) BETWEEN 31 AND 45 THEN '31-45'\n        ELSE '46+'\n    END AS age_group,\n    AVG(R.bintang) AS avg_rating\nFROM rating R\nJOIN pelanggan Pel ON R.id_pelanggan = Pel.id_pelanggan\nGROUP BY R.id_produk, age_group;\n\n-- 19. Average Order Quantity by Category\nSELECT K.nama_kategori, AVG(jumlah_order) AS avg_order_quantity\nFROM orders O\nJOIN produk B ON O.id_produk = B.id_produk\nJOIN kategori K ON B.id_kategori = K.id_kategori\nGROUP BY K.nama_kategori;\n\n-- 20. Average Rating by Payment Type for Each Product\nSELECT R.id_produk, JP.tipe_pembayaran, AVG(R.bintang) AS avg_rating\nFROM rating R\nJOIN jenis_pembayaran JP ON R.id_pembayaran = JP.id_pembayaran\nGROUP BY R.id_produk, JP.tipe_pembayaran;\n\n```\n\n# get showing the PDM Right Here","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frammm2005%2Fschema-ecc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frammm2005%2Fschema-ecc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frammm2005%2Fschema-ecc/lists"}