Changes between Initial Version and Version 1 of ddlScript.sql


Ignore:
Timestamp:
12/20/25 22:14:24 (10 days ago)
Author:
235018
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ddlScript.sql

    v1 v1  
     1{{{#!sql
     2-- Delete tables if they exist
     3DROP TABLE IF EXISTS product CASCADE;
     4DROP TABLE IF EXISTS image CASCADE;
     5DROP TABLE IF EXISTS colors CASCADE;
     6DROP TABLE IF EXISTS store CASCADE;
     7DROP TABLE IF EXISTS personal CASCADE;
     8DROP TABLE IF EXISTS permissions CASCADE;
     9DROP TABLE IF EXISTS boss CASCADE;
     10DROP TABLE IF EXISTS employees CASCADE;
     11DROP TABLE IF EXISTS client CASCADE;
     12DROP TABLE IF EXISTS delivery_address CASCADE;
     13DROP TABLE IF EXISTS order CASCADE;
     14DROP TABLE IF EXISTS report CASCADE;
     15DROP TABLE IF EXISTS monthly_profit CASCADE;
     16DROP TABLE IF EXISTS request CASCADE;
     17DROP TABLE IF EXISTS makes_request CASCADE;
     18DROP TABLE IF EXISTS answers CASCADE;
     19DROP TABLE IF EXISTS for_store CASCADE;
     20DROP TABLE IF EXISTS review CASCADE;
     21DROP TABLE IF EXISTS change CASCADE;
     22DROP TABLE IF EXISTS makes_change CASCADE;
     23DROP TABLE IF EXISTS made_od CASCADE;
     24DROP TABLE IF EXISTS works_in_store CASCADE;
     25DROP TABLE IF EXISTS worked CASCADE;
     26DROP TABLE IF EXISTS sells CASCADE;
     27DROP TABLE IF EXISTS includes CASCADE;
     28DROP TABLE IF EXISTS approves CASCADE;
     29DROP TABLE IF EXISTS exchange_data CASCADE;
     30
     31
     32-- Table 1
     33-- Create PRODUCT table
     34CREATE TABLE product (
     35    code SERIAL UNIQUE NOT NULL PRIMARY KEY,
     36    price NUMBER NOT NULL,
     37    availability INTEGER NOT NULL,
     38    weight NUMBER NOT NULL,
     39    width_X_length_X_depth VARCHAR(20) NOT NULL,
     40    aprox_production_time INTEGER NOT NULL,
     41    description VARCHAR NOT NULL
     42);
     43
     44
     45-- Table 2
     46-- Create IMAGE table
     47CREATE TABLE image(
     48    product_code SERIAL UNIQUE NOT NULL REFERENCES product(code)
     49        ON DELETE CASCADE,
     50    image VARCHAR NOT NULL DEFAULT 'Image NOT found!'
     51);
     52
     53
     54-- Table 3
     55-- Create COLOR table
     56CREATE TABLE color (
     57    product_code SERIAL UNIQUE NOT NULL REFERENCES product(code)
     58        ON DELETE CASCADE,
     59    color VARCHAR(10)
     60);
     61
     62
     63-- Table 4
     64-- Create STORE table
     65CREATE TABLE store (
     66    store_ID SERIAL UNIQUE NOT NULL PRIMARY KEY
     67        ON DELETE CASCADE,
     68    name VARCHAR(50) UNIQUE NOT NULL,
     69    date_of_founding DATE NOT NULL,
     70    physical_address VARCHAR(100) NOT NULL,
     71    store_email VARCHAR(20) UNIQUE NOT NULL,
     72    rating NUMBER NOT NULL DEFAULT '0'
     73);
     74
     75
     76-- Table 5
     77-- Create PERSONAL table
     78CREATE TABLE personal (
     79    ssn NUMBER UNIQUE NOT NULL PRIMARY KEY,
     80    first_name VARCHAR(20) NOT NULL,
     81    last_name VARCHAR(20) NOT NULL,
     82    email VARCHAR(20) UNIQUE NOT NULL,
     83    password VARCAHR NOT NULL
     84);
     85
     86
     87-- Table 6
     88-- Create PERMISSIONS table
     89CREATE TABLE permissions (
     90    personal_SSN NUMBER UNIQUE NOT NULL PRIMARY KEY REFERENCES personal(ssn)
     91        ON DELETE CASCADE,
     92    type VARCHAR(100) UNIQUE NOT NULL,
     93    authorisation VARCHAR (50) NOT NULL
     94);
     95
     96
     97-- Table 7
     98-- Create BOSS table
     99CREATE TABLE boss (
     100    boss_SSN NUMBER UNIQUE NOT NULL PRIMARY KEY REFERENCES personal(ssn)
     101        ON DELETE CASCADE
     102);
     103
     104
     105-- Table 8
     106-- Create EMPLOYEES table
     107CREATE TABLE employees (
     108    employee_SSN NUMBER UNIQUE NOT NULL PRIMARY KEY REFERENCES personal(ssn)
     109        ON DELETE CASCADE,
     110    date_of_hire DATE NOT NULL
     111);
     112
     113
     114-- Table 9
     115-- Create CLIENT table
     116CREATE TABLE client (
     117    client_ID SERIAL UNIQUE NOT NULL PRIMARY KEY,
     118    first_name VARCHAR(50) NOT NULL,
     119    last_name VARCHAR(50) NOT NULL,
     120    email VARCHAR(20) UNIQUE NOT NULL,
     121    password VARCHAR NOT NULL
     122);
     123
     124
     125-- Table 10
     126-- Create DELIVERY_ADDRESS table
     127CREATE TABLE delivery_address (
     128    client_ID SERIAL UNIQUE NOT NULL PRIMARY KEY REFERENCES client(client_ID)
     129        ON DELETE CASCADE,
     130    address VARCHAR NOT NULL
     131);
     132
     133
     134-- Table 11
     135-- Create ORDER table
     136CREATE TABLE order (
     137    order_num SERIAL UNIQUE NOT NULL PRIMARY KEY,
     138    client_ID SERIAL UNIQUE NOT NULL REFERENCES client(client_ID),
     139        ON DELETE CASCADE,
     140    quantity INTEGER NOT NULL,
     141    status VARCHAR(20) NOT NULL DEFAULT 'placed order',
     142    last_date_mod TIMESTAMP NOT NULL,
     143    payment_method VARHAR (250) NOT NULL,
     144    discount NUMBER DEFAULT 0.0,
     145);
     146
     147
     148-- Table 12
     149-- Create REPORT table
     150CREATE TABLE report (
     151    date TIMESTAMP NOT NULL,
     152    store_ID SERIAL NOT NULL REFERENCES store(store_ID)
     153        ON DELETE CASCADE,
     154    overall_profit NUMBER NOT NULL DEFAULT 0.0,
     155    sales_trend VARCHAR(max) NOT NULL,
     156    marketing_growth VARCHAR(max) NOT NULL,
     157    owner_signature VARCHAR(30) NOT NULL,
     158    PRIMARY KEY (date, store_ID)
     159);
     160
     161
     162-- Table 13
     163-- Create MONTHLY_PROFIT table
     164CREATE TABLE monthly_profit (
     165    report_date TIMESTAMP NOT NULL REFERENCES report(date)
     166        ON DELETE CASCADE,
     167    store_ID SERIAL NOT NULL REFERENCES store(store_ID),
     168        ON DELETE CASCADE,
     169    month_and_year DATE NOT NULL,
     170    profit NUMBER NOT NULL DEFAULT 0.0,
     171    PRIMARY KEY(report_date, store_ID)
     172);
     173
     174
     175-- Table 14
     176-- Create REQUEST table
     177CREATE TABLE request (
     178   
     179);
     180
     181
     182
     183}}}