【发布时间】:2016-05-03 20:25:32
【问题描述】:
我已经构建了一个日程安排网络应用程序,用户可以在其中预订给定日期和该日期时间段的会议。
现在我需要实现一个预订锁,这意味着管理员可以应用这个锁,并且用户从那时起就不能再预订了。
我当前的设计包括一个模型 booking_lock,它只有一个“status”属性,值为“On”和“Off”。
该模型在任何给定时间在数据库中都只有一条记录,因为它的唯一职责是提供数据以检查预订是否已被锁定。
----------编辑-------------- ----------
这并不是要锁定单个记录(会议)。为此,我使用 user_id 的属性。如果为 0,则会议可以预订。
我现在要做的是在用户访问数据库之前完全禁用(锁定)预订。
例如:
当用户登录时,他们会看到一条通知说预订已锁定。此外,他们不会看到预订会议的相应按钮,如果他们偶然导航到相应的 URL,他们将被重定向到主页,并显示与上述相同的通知。我已经涵盖了所有这些内容。
但我需要一个通用开关来打开和关闭,并作为这种检查的基础。因此,booking_lock 模型。
注意:我使用的是hanami-model。
----------编辑-------------- ----------
我的问题有两个:
- 有没有更好的方法来实现这种锁?
- 如何确保数据库中只有一条记录用于这种锁?
【问题讨论】:
-
您想在应用程序范围内应用锁还是只为特定用户应用锁?
-
针对特定的用户类别。
-
抱歉,我不确定我是否理解:特定用户 ID 或特定用户类别?
-
针对特定的用户类别。具体例子:这是关于家长/教师会议。锁定后,家长无法再预订会议,而教师仍可以为家长预订或取消预订。
标签: sql ruby web-applications hanami