我想知道怎样才能最好地管理房间或床位的可用性,比如在一家旅店(Saas)。我在考虑使用MySQL和Elasticsearch。房间/床桌和可用性表的最佳模式是什么?
非常感谢。
发布于 2021-07-04 22:55:30
MariaDB-10.5有一个功能申请时限-无重叠,它的示例甚至列出了房间的可用性作为示例。
这个例子给出:
CREATE OR REPLACE TABLE rooms (
room_number INT,
guest_name VARCHAR(255),
checkin DATE,
checkout DATE,
PERIOD FOR p(checkin,checkout),
PRIMARY KEY (room_number, p WITHOUT OVERLAPS)
);作为一个例子语法。
试图重叠预订将导致错误:
INSERT INTO rooms VALUES
(1, 'Regina', '2020-10-01', '2020-10-03'),
(2, 'Cochise', '2020-10-02', '2020-10-05'),
(1, 'Nowell', '2020-10-03', '2020-10-07'),
(2, 'Eusebius', '2020-10-04', '2020-10-06');
ERROR 1062 (23000): Duplicate entry '2-2020-10-06-2020-10-04' for key 'room_number'因此,在您的应用程序中,您需要将重复的键错误作为异常捕获,并将其视为已预订的。
https://dba.stackexchange.com/questions/295260
复制相似问题