init.sql 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. CREATE TABLE employee (
  2. employee_id SERIAL PRIMARY KEY,
  3. full_name VARCHAR(150) NOT NULL,
  4. position VARCHAR(100) NOT NULL
  5. );
  6. CREATE TABLE client (
  7. client_id SERIAL PRIMARY KEY,
  8. full_name VARCHAR(150) NOT NULL,
  9. phone VARCHAR(20) NOT NULL,
  10. address VARCHAR(200),
  11. passport VARCHAR(20) NOT NULL
  12. );
  13. CREATE TABLE car (
  14. car_id SERIAL PRIMARY KEY,
  15. reg_number VARCHAR(10) UNIQUE NOT NULL,
  16. brand VARCHAR(50) NOT NULL,
  17. model VARCHAR(50) NOT NULL,
  18. year INT,
  19. price NUMERIC(10,2) NOT NULL,
  20. status VARCHAR(50) DEFAULT 'в наличии'
  21. );
  22. CREATE TABLE warehouse (
  23. warehouse_id SERIAL PRIMARY KEY,
  24. address VARCHAR(200) NOT NULL
  25. );
  26. CREATE TABLE supplier (
  27. supplier_id SERIAL PRIMARY KEY,
  28. name VARCHAR(150) NOT NULL,
  29. address VARCHAR(200),
  30. phone VARCHAR(20)
  31. );
  32. CREATE TABLE contract (
  33. contract_id SERIAL PRIMARY KEY,
  34. car_id INT NOT NULL REFERENCES car(car_id),
  35. client_id INT NOT NULL REFERENCES client(client_id),
  36. employee_id INT NOT NULL REFERENCES employee(employee_id),
  37. contract_date DATE NOT NULL DEFAULT CURRENT_DATE,
  38. sale_price NUMERIC(10,2) NOT NULL
  39. );
  40. CREATE TABLE orders (
  41. order_id SERIAL PRIMARY KEY,
  42. client_id INT NOT NULL REFERENCES client(client_id),
  43. car_id INT NOT NULL REFERENCES car(car_id),
  44. order_date DATE NOT NULL DEFAULT CURRENT_DATE,
  45. status VARCHAR(50) DEFAULT 'новый'
  46. );
  47. -- Поставки
  48. CREATE TABLE supplier_car (
  49. supplier_car_id SERIAL PRIMARY KEY,
  50. supplier_id INT NOT NULL REFERENCES supplier(supplier_id),
  51. car_id INT NOT NULL REFERENCES car(car_id),
  52. supply_date DATE NOT NULL DEFAULT CURRENT_DATE,
  53. supply_price NUMERIC(10,2) NOT NULL
  54. );
  55. -- Хранение на складах
  56. CREATE TABLE car_warehouse (
  57. car_warehouse_id SERIAL PRIMARY KEY,
  58. car_id INT NOT NULL REFERENCES car(car_id),
  59. warehouse_id INT NOT NULL REFERENCES warehouse(warehouse_id),
  60. arrival_date DATE NOT NULL DEFAULT CURRENT_DATE,
  61. quantity INT DEFAULT 1
  62. );