Changes between Initial Version and Version 1 of DML final


Ignore:
Timestamp:
09/29/25 18:28:18 (3 weeks ago)
Author:
213231
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DML final

    v1 v1  
     1
     2{{{
     3CREATE TABLE customer (
     4  CustomerID integer PRIMARY KEY,
     5  CustomerName varchar(100),
     6  CustomerSurName varchar(100),
     7  Email varchar(100),
     8  Address varchar(255),
     9  CustomerContact varchar(20),
     10  Password varchar(255) NOT NULL
     11);
     12
     13CREATE TABLE employee (
     14  EmployeeID integer PRIMARY KEY,
     15  EmployeeName varchar(100),
     16  EmployeeSurName varchar(100),
     17  Position varchar(100),
     18  Department varchar(100),
     19  Email varchar(100),
     20  Password varchar(100)
     21);
     22
     23CREATE TABLE product (
     24  ProductID integer PRIMARY KEY,
     25  ProcurementID integer NOT NULL,
     26  ProcurementRequestID integer NOT NULL,
     27  Model varchar(100),
     28  Price numeric(10,2),
     29  LicensePlate varchar(50),
     30  Status varchar(15) NOT NULL,
     31  CONSTRAINT product_status_check CHECK (Status IN ('available','sold','rented','maintenance')),
     32  CONSTRAINT procurement_fk FOREIGN KEY(ProcurementID) REFERENCES procurement(TransactionID),
     33  CONSTRAINT procurement_request_fk FOREIGN KEY(ProcurementRequestID) REFERENCES procurement_request(RequestID)
     34);
     35
     36CREATE TABLE procurement (
     37  TransactionID integer PRIMARY KEY,
     38  EmployeeID integer,
     39  CustomerID integer,
     40  ProcurementDate date,
     41  Quantity integer,
     42  Status varchar(10) DEFAULT 'Pending',
     43  Notified boolean DEFAULT FALSE,
     44  GroupID varchar(255),
     45  CONSTRAINT procurement_employee_fk FOREIGN KEY (EmployeeID) REFERENCES employee(EmployeeID),
     46  CONSTRAINT procurement_customer_fk FOREIGN KEY (CustomerID) REFERENCES customer(CustomerID)
     47);
     48
     49CREATE TABLE maintenance (
     50  MainID integer PRIMARY KEY,
     51  MainDate date,
     52  Description text,
     53  Cost numeric(10,2),
     54  Status varchar(10) DEFAULT 'Pending',
     55  StartTime timestamp DEFAULT CURRENT_TIMESTAMP,
     56  EndTime timestamp,
     57  CONSTRAINT maintenance_status_check CHECK (Status IN ('Pending','Completed'))
     58);
     59
     60CREATE TABLE trailer (
     61  ProductID integer PRIMARY KEY,
     62  Capacity numeric(10,2),
     63  CONSTRAINT trailer_product_fk FOREIGN KEY (ProductID) REFERENCES product(ProductID)
     64);
     65
     66CREATE TABLE truck (
     67  ProductID integer PRIMARY KEY,
     68  HP integer,
     69  CONSTRAINT truck_product_fk FOREIGN KEY (ProductID) REFERENCES product(ProductID)
     70);
     71
     72CREATE TABLE views (
     73  CustomerID integer NOT NULL,
     74  ProductID integer NOT NULL,
     75  PRIMARY KEY (CustomerID, ProductID),
     76  CONSTRAINT views_customer_fk FOREIGN KEY (CustomerID) REFERENCES customer(CustomerID),
     77  CONSTRAINT views_product_fk FOREIGN KEY (ProductID) REFERENCES product(ProductID)
     78);
     79
     80CREATE TABLE wallet (
     81  WalletID serial PRIMARY KEY,
     82  CustomerID integer NOT NULL,
     83  Balance numeric(10,2) NOT NULL DEFAULT 0.00,
     84  CardNumber varchar(16),
     85  ExpiryDate date,
     86  CVV varchar(4),
     87  CardHolderName varchar(100),
     88  CONSTRAINT wallet_customer_fk FOREIGN KEY (CustomerID) REFERENCES customer(CustomerID)
     89);
     90
     91CREATE TABLE customerfeedback (
     92  FeedbackID integer PRIMARY KEY,
     93  CustomerID integer,
     94  ProductID integer,
     95  Rating integer CHECK (Rating BETWEEN 1 AND 5),
     96  Comment text,
     97  FeedbackDate date,
     98  TransactionID integer,
     99  CONSTRAINT feedback_customer_fk FOREIGN KEY (CustomerID) REFERENCES customer(CustomerID),
     100  CONSTRAINT feedback_product_fk FOREIGN KEY (ProductID) REFERENCES product(ProductID),
     101  CONSTRAINT feedback_transaction_fk FOREIGN KEY (TransactionID) REFERENCES procurement(TransactionID)
     102);
     103
     104CREATE TABLE procurement_request (
     105  RequestID serial PRIMARY KEY,
     106  CustomerID integer NOT NULL,
     107  WalletID integer NOT NULL,
     108  ProcurementID integer NOT NULL,
     109  Quantity integer DEFAULT 1,
     110  RequestedAt timestamp DEFAULT CURRENT_TIMESTAMP,
     111  Status varchar(10) DEFAULT 'Pending',
     112  PaymentMethod varchar(20),
     113  PaymentStatus varchar(10) DEFAULT 'Reserved',
     114  MonthlyPay numeric(10,2),
     115  TotalPrice numeric(10,2),
     116  Duration integer,
     117  CardID integer,
     118  TransactionType varchar(10) DEFAULT 'Buy',
     119  GroupID varchar(36),
     120  CONSTRAINT procurement_request_customer_fk FOREIGN KEY (CustomerID) REFERENCES customer(CustomerID),
     121  CONSTRAINT wallet_fk FOREIGN KEY (WalletID) REFERENCES wallet(WalletID),
     122  CONSTRAINT procurement_fk FOREIGN KEY (ProcurementID) REFERENCES procurement(TransactionID),
     123  CONSTRAINT procurement_request_status_check CHECK (Status IN ('Pending','Approved','Rejected')),
     124  CONSTRAINT procurement_request_paymentstatus_check CHECK (PaymentStatus IN ('Reserved','Charged','Refunded')),
     125  CONSTRAINT procurement_request_transactiontype_check CHECK (TransactionType IN ('Buy','Rent'))
     126);
     127
     128CREATE TABLE t_type (
     129  TransactionID integer PRIMARY KEY,
     130  Type varchar(10) NOT NULL,
     131  Duration integer,
     132  MonthlyPay numeric(10,2),
     133  TotalPrice numeric(10,2),
     134  CONSTRAINT t_type_type_check CHECK (Type IN ('Rent','Buy')),
     135  CONSTRAINT t_type_transaction_fk FOREIGN KEY (TransactionID) REFERENCES procurement(TransactionID)
     136);
     137
     138CREATE TABLE customer_product (
     139  CustomerID integer NOT NULL,
     140  ProductID integer NOT NULL,
     141  CONSTRAINT customer_product_id PRIMARY KEY (CustomerID, ProductID),
     142  CONSTRAINT customer_product_customer_fk FOREIGN KEY (CustomerID) REFERENCES customer(CustomerID),
     143  CONSTRAINT customer_product_product_fk FOREIGN KEY (ProductID) REFERENCES product(ProductID)
     144);
     145
     146CREATE TABLE product_maintenance (
     147  ProductID integer NOT NULL,
     148  MaintenanceID integer NOT NULL,
     149  CONSTRAINT product_maintenance_id PRIMARY KEY (ProductID, MaintenanceID),
     150  CONSTRAINT product_maintenance_product_fk FOREIGN KEY (ProductID) REFERENCES product(ProductID),
     151  CONSTRAINT product_maintenance_maintenance_fk FOREIGN KEY (MaintenanceID) REFERENCES maintenance(MainID)
     152);
     153
     154CREATE TABLE employee_maintenance (
     155  EmployeeID integer NOT NULL,
     156  MaintenanceID integer NOT NULL,
     157  CONSTRAINT employee_maintenance_id PRIMARY KEY (EmployeeID, MaintenanceID),
     158  CONSTRAINT employee_maintenance_employee_fk FOREIGN KEY (EmployeeID) REFERENCES employee(EmployeeID),
     159  CONSTRAINT employee_maintenance_maintenance_fk FOREIGN KEY (MaintenanceID) REFERENCES maintenance(MainID)
     160);
     161}}}