83 lines
2.9 KiB
SQL
83 lines
2.9 KiB
SQL
CREATE TABLE "users"(
|
|
"id" INT NOT NULL,
|
|
"name" NVARCHAR(255) NOT NULL,
|
|
"email" NVARCHAR(255) NOT NULL,
|
|
"email_verified_at" DATETIME NULL,
|
|
"password" NVARCHAR(255) NOT NULL,
|
|
"remember_token" NVARCHAR(255) NULL,
|
|
"created_at" DATETIME NOT NULL,
|
|
"updated_at" DATETIME NOT NULL,
|
|
"phone_number" NVARCHAR(255) NOT NULL,
|
|
"description" NVARCHAR(255) NOT NULL,
|
|
"profile_image" NVARCHAR(255) NOT NULL
|
|
);
|
|
ALTER TABLE
|
|
"users" ADD CONSTRAINT "users_id_primary" PRIMARY KEY("id");
|
|
CREATE UNIQUE INDEX "users_email_unique" ON
|
|
"users"("email");
|
|
CREATE TABLE "rooms"(
|
|
"id" INT NOT NULL,
|
|
"home_type" NVARCHAR(255) NOT NULL,
|
|
"room_type" NVARCHAR(255) NOT NULL,
|
|
"total_occupancy" INT NOT NULL,
|
|
"total_bedrooms" INT NOT NULL,
|
|
"total_bathrooms" INT NOT NULL,
|
|
"summary" NVARCHAR(255) NOT NULL,
|
|
"address" NVARCHAR(255) NOT NULL,
|
|
"has_tv" BIT NOT NULL,
|
|
"has_kitchen" BIT NOT NULL,
|
|
"has_air_con" BIT NOT NULL,
|
|
"has_heating" BIT NOT NULL,
|
|
"has_internet" BIT NOT NULL,
|
|
"price" INT NOT NULL,
|
|
"published_at" DATETIME NOT NULL,
|
|
"owner_id" INT NOT NULL,
|
|
"created_at" DATETIME NOT NULL,
|
|
"updated_at" DATETIME NOT NULL,
|
|
"latitude" FLOAT NOT NULL,
|
|
"longitude" FLOAT NOT NULL
|
|
);
|
|
ALTER TABLE
|
|
"rooms" ADD CONSTRAINT "rooms_id_primary" PRIMARY KEY("id");
|
|
CREATE TABLE "reservations"(
|
|
"id" INT NOT NULL,
|
|
"user_id" INT NOT NULL,
|
|
"room_id" INT NOT NULL,
|
|
"start_date" DATETIME NOT NULL,
|
|
"end_date" DATETIME NOT NULL,
|
|
"price" INT NOT NULL,
|
|
"total" INT NOT NULL,
|
|
"created_at" DATETIME NOT NULL,
|
|
"updated_at" DATETIME NOT NULL
|
|
);
|
|
ALTER TABLE
|
|
"reservations" ADD CONSTRAINT "reservations_id_primary" PRIMARY KEY("id");
|
|
CREATE TABLE "media"(
|
|
"id" INT NOT NULL,
|
|
"model_id" INT NOT NULL,
|
|
"model_type" NVARCHAR(255) NOT NULL,
|
|
"file_name" NVARCHAR(255) NOT NULL,
|
|
"mime_type" NVARCHAR(255) NULL
|
|
);
|
|
ALTER TABLE
|
|
"media" ADD CONSTRAINT "media_id_primary" PRIMARY KEY("id");
|
|
CREATE TABLE "reviews"(
|
|
"id" INT NOT NULL,
|
|
"reservation_id" INT NOT NULL,
|
|
"rating" INT NOT NULL,
|
|
"comment" NVARCHAR(255) NOT NULL
|
|
);
|
|
ALTER TABLE
|
|
"reviews" ADD CONSTRAINT "reviews_id_primary" PRIMARY KEY("id");
|
|
ALTER TABLE
|
|
"rooms" ADD CONSTRAINT "rooms_published_at_foreign" FOREIGN KEY("published_at") REFERENCES "users"("id");
|
|
ALTER TABLE
|
|
"reservations" ADD CONSTRAINT "reservations_user_id_foreign" FOREIGN KEY("user_id") REFERENCES "users"("id");
|
|
ALTER TABLE
|
|
"reservations" ADD CONSTRAINT "reservations_room_id_foreign" FOREIGN KEY("room_id") REFERENCES "rooms"("id");
|
|
ALTER TABLE
|
|
"reviews" ADD CONSTRAINT "reviews_reservation_id_foreign" FOREIGN KEY("reservation_id") REFERENCES "reservations"("id");
|
|
ALTER TABLE
|
|
"media" ADD CONSTRAINT "media_model_id_foreign" FOREIGN KEY("model_id") REFERENCES "reviews"("id");
|
|
ALTER TABLE
|
|
"media" ADD CONSTRAINT "media_model_id_foreign" FOREIGN KEY("model_id") REFERENCES "rooms"("id"); |