-
Notifications
You must be signed in to change notification settings - Fork 67
/
reservation.cql
65 lines (56 loc) · 1.59 KB
/
reservation.cql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
* Copyright (C) 2016-2020 Jeff Carpenter
*/
/* This file contains a slightly modified version of the "reservation" keyspace and table definitions
* for the example defined in Chapter 5 of Cassandra: The Definitive Guide, 2nd and 3nd Editions.
* The changes are to facilitate development exercises.
*/
CREATE KEYSPACE reservation
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};
CREATE TABLE reservation.reservations_by_hotel_date (
hotel_id text,
start_date date,
end_date date,
room_number smallint,
confirm_number text,
guest_id uuid,
PRIMARY KEY ((hotel_id, start_date), room_number)
);
CREATE TABLE reservation.reservations_by_confirmation (
confirm_number text PRIMARY KEY,
hotel_id text,
start_date date,
end_date date,
room_number smallint,
guest_id uuid
);
/*
The following tables are provided for completeness with the book text, but they are not used in the current
implementation of the Reservation Service
*/
CREATE TABLE reservation.reservations_by_guest (
guest_last_name text,
hotel_id text,
start_date date,
end_date date,
room_number smallint,
confirm_number text,
guest_id uuid,
PRIMARY KEY ((guest_last_name), hotel_id)
);
CREATE TYPE reservation.address (
street text,
city text,
state_or_province text,
postal_code text,
country text
);
CREATE TABLE reservation.guests (
guest_id uuid PRIMARY KEY,
first_name text,
last_name text,
title text,
emails set<text>,
phone_numbers list<text>,
addresses map<text, frozen<address>>
);