Advertisement
Guest User

Untitled

a guest
Dec 16th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.24 KB | None | 0 0
  1. --create tables
  2. DROP TABLE park CASCADE CONSTRAINTS PURGE;
  3. DROP TABLE bicycle CASCADE CONSTRAINTS PURGE;
  4. DROP TABLE bike_type CASCADE CONSTRAINTS PURGE;
  5. DROP TABLE app_user CASCADE CONSTRAINTS PURGE;
  6. DROP TABLE rental CASCADE CONSTRAINTS PURGE;
  7.  
  8. CREATE TABLE park(
  9. id_park integer CONSTRAINT pk_park_id_park PRIMARY KEY,
  10. park_name varchar(50) CONSTRAINT nn_park_id_park NOT NULL
  11. CONSTRAINT uk_park_id_park UNIQUE,
  12. latitude number(10,2) CONSTRAINT nn_park_latitude NOT NULL,
  13. longitude number(10,2) CONSTRAINT nn_park_longitude NOT NULL,
  14. altitude number(10,2) CONSTRAINT nn_park_altitude NOT NULL,
  15. capacity_electrical integer CONSTRAINT nn_park_capacity_electrical NOT NULL
  16. CONSTRAINT ck_park_capacity_electrical CHECK (capacity_electrical>=0),
  17. capacity_standard integer CONSTRAINT nn_park_capacity_road_mountain NOT NULL
  18. CONSTRAINT ck_park_capacity_road_mountain CHECK(capacity_standard>=0)
  19. );
  20.  
  21. CREATE TABLE bike_type(
  22. id_type integer CONSTRAINT pk_bike_type_id_type PRIMARY KEY,
  23. descrip varchar(100) CONSTRAINT nn_bike_type_descrip NOT NULL,
  24. CONSTRAINT ck_bike_type_descrip CHECK (UPPER(descrip) IN ('MOUNTAIN', 'ROAD', 'ELECTRICALLY ASSISTED'))
  25. );
  26.  
  27. CREATE TABLE bicycle(
  28. bike_number integer CONSTRAINT pk_bicycle_bike_number PRIMARY KEY,
  29. id_type integer CONSTRAINT nn_bicycle_id_type NOT NULL,
  30. id_park integer,
  31. current_autonomy number(10,2) CONSTRAINT ck_bicycle_current_autonomy CHECK (current_autonomy>=0.00),
  32. max_autonomy number(10,2) CONSTRAINT ck_bicycle_max_autonomy CHECK (max_autonomy>=0.00),
  33. consumption number(10,2),
  34. CONSTRAINT fk_bicycle_id_type FOREIGN KEY (id_type) REFERENCES bike_type(id_type),
  35. CONSTRAINT fk_bicycle_id_park FOREIGN KEY (id_park) REFERENCES park(id_park)
  36. );
  37.  
  38. CREATE TABLE app_user(
  39. id_user integer CONSTRAINT pk_user_id_user PRIMARY KEY,
  40. user_name varchar(20) CONSTRAINT nn_user_user_name NOT NULL,
  41. credit_card_number varchar(16) CONSTRAINT nn_user_credit_card_number NOT NULL
  42. CONSTRAINT uk_user_credit_card_numer UNIQUE,
  43. height number(3) CONSTRAINT nn_user_height NOT NULL
  44. CONSTRAINT ck_user_height CHECK(height>0),
  45. weight number(3) CONSTRAINT nn_user_weight NOT NULL
  46. CONSTRAINT ck_user_weight CHECK(weight>0),
  47. paid integer CONSTRAINT nn_user_paid NOT NULL
  48. CONSTRAINT ck_user_paid CHECK (paid IN (0,1)),
  49. email varchar(80) CONSTRAINT uk_user_email UNIQUE
  50. CONSTRAINT ck_user_email CHECK (REGEXP_LIKE (email, '^[A-Za-z]+[A-Za-z0-9.]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$'))
  51. );
  52. CREATE TABLE rental(
  53. id_rental integer GENERATED AS IDENTITY CONSTRAINT pk_rental_id_rental PRIMARY KEY,
  54. id_user integer CONSTRAINT nn_rental_id_user NOT NULL,
  55. bike_number integer CONSTRAINT nn_rental_bike_number NOT NULL,
  56. id_park_start integer CONSTRAINT nn_rental_id_park_start NOT NULL
  57. CONSTRAINT fk_rental_id_park_start REFERENCES park(id_park),
  58. id_park_end integer CONSTRAINT fk_rental_id_park_end REFERENCES park(id_park),
  59. initial_date timestamp CONSTRAINT nn_rental_data_inicio NOT NULL,
  60. end_date timestamp,
  61. CONSTRAINT fk_rental_id_user FOREIGN KEY (id_user) REFERENCES app_user(id_user),
  62. CONSTRAINT fk_rental_bike_number FOREIGN KEY (bike_number) REFERENCES bicycle(bike_number)
  63. );
  64.  
  65. INSERT INTO bike_type VALUES (1, 'Mountain');
  66. INSERT INTO bike_type VALUES (2, 'Road');
  67. INSERT INTO bike_type VALUES (3, 'Electrically assisted');
  68.  
  69. INSERT INTO park VALUES (87, 'Park Test', 2.00, 23.30, 0.10, 24, 56);
  70. INSERT INTO park VALUES (16, 'Park Test2', 3.00, 3.00, 45.03, 24, 56);
  71. INSERT INTO park VALUES (1, 'Park Test3', 4.00, 5.00, 0.44, 24, 56);
  72.  
  73. INSERT INTO bicycle VALUES(90, 1, 87, 0.00, 0.00, NULL);
  74. INSERT INTO bicycle VALUES(10, 2, 87, 0.00, 0.00, NULL);
  75. INSERT INTO bicycle VALUES(20, 3, 87, 0.00, 0.00, 10);
  76. INSERT INTO bicycle VALUES(30, 1, 87, 0.00, 0.00, NULL);
  77. INSERT INTO bicycle VALUES(1, 2, 87, 0.00, 0.00, NULL);
  78. INSERT INTO bicycle VALUES(2, 2, 87, 0.00, 0.00, NULL);
  79. INSERT INTO bicycle(bike_number, id_type, current_autonomy, max_autonomy) VALUES(21, 3, 1.00, 1.00);
  80.  
  81. INSERT INTO app_user VALUES(01, 'Thom', '4322345934290372', 167, 68, 1, 'rh@email.com');
  82. INSERT INTO app_user VALUES(02, 'David', '4278770330700696', 170, 79, 0, 'pf@email.com');
  83. INSERT INTO app_user VALUES(03, 'Justin', '4485879296463584', 177, 68, 1, 'bi@email.com');
  84.  
  85.  
  86. INSERT INTO rental(id_user, bike_number, id_park_start, initial_date) VALUES(1, 21, 87, TO_TIMESTAMP ('2018-12-16 12:00:00', 'YYYY-MM-DD HH24:MI:SS'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement