首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >酒店管理数据库

酒店管理数据库
EN

Database Administration用户
提问于 2015-11-09 19:16:27
回答 1查看 8.2K关注 0票数 1

我需要帮助设计我的模式。我在这方面几乎是新手,我不确定下面的表ROOMGUESTRESERVATION之间的关系是否正确。

此外,我也很难弄清楚如何处理房间变更的可能性:举个例子:

迈克尔·基顿预订了两个房间。第一次,他不喜欢这个房间,所以旅馆把他搬到了另一个房间,第二次在同一个房间里有水管问题,所以他们又把他搬走了。我的数据库需要记录每一个房间的变化。

以下是实体关系图:

EN

回答 1

Database Administration用户

发布于 2015-11-09 20:13:02

听起来,您需要一个历史表来进行房间更改,这些更改最有可能是通过应用程序层进行的。我知道使用内置触发器来记录它是很有诱惑力的,但是一个简单的应用程序层应该能做到这一点。

如果您真的很关心这个问题,并且您可以使用CDC选项,那么可以随意使用它,但是我会使用一个事务,它记录当前记录到其他地方,更新它,如果它失败了就用回滚错误处理提交,并且在查看此错误时,最终用户可以为客户采取其他一些步骤。

编辑:基于问题的更新。为此,您可以编写从应用程序调用的存储过程,其中:

-begins事务

-copies当前酒店号码和居住者id以及时间戳到“getRoomChangeHistory”类型的存储过程

-then发出一个“updateRoomChange”类型的存储过程,以便更新新值

-Finally提交事务。添加对失败的错误处理。如果你想要一种可靠的可审计的方式来做这件事,这就是它。如果你想轻松一点,那就不可靠了。因此,如果您不关心ACID的遵从性,为什么不把它保存在其他地方的文档存储中呢?

下面是关于SQL2012及更高版本的更多信息,通过使用TRY从图书OnLine实现这一点:https://msdn.microsoft.com/en-us/library/ms175976.aspx

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/120539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档