如何在简单的旅馆预订系统中建模可用性? (Laravel 5)

时间:2017-09-20 22:47:02

标签: mysql laravel laravel-5 laravel-5.3 laravel-5.4

我有一个简单的旅馆预订系统,我不知道如何在数据库中建模可用性(例如通过Eloquent)。宿舍比酒店简单,因为预订目的,它实际上只是一个大房间。但是,数据库中将有多个酒店(由不同的所有者运营)。因此,我目前的数据库表是:来宾,旅馆(包括所有者详细信息),预订(即从Y日期到Z日期住宿X的人W)和付款(住宿的付款金额)。显然这些是捆绑在一起的(例如ID引用或其他一些关系)。

但是在可用性的情况下,我需要代表特定宿舍在特定日期可用的床位数,例如:未来一两年。什么是有效的方法呢?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

为什么在通过查询日期是否可用然后将其存储在特定的宿舍中时可以更简单地为可用性建模?

e.g:

  1. 你有一个宿舍。
  2. 在日历中,您会显示该旅馆从抵达到出发日期的日期。
  3. 访客选择了日期并提交
  4. 检查日期是否与该旅舍的预订日期相交。
  5. 如果该旅馆的任何预订日期没有交叉点,那么它就可以使用。
  6. 将其保存在数据库中。
  7. 并且如果您想要为特定宿舍代表一些床铺,那么您需要建模而不是可用性,因为指定了多少床位用于提供信息。

    class HostelBed extends Model {
    
        protected $fillable = ['count', 'from', 'to'];
    
        public function hostel()
        {
            return $this->belongsTo(Hostel::class);
        } 
    }
    

    查询日历中的所有床位,然后将其显示在您的日历中或任何您想要的位置。