首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >健身房预约数据库架构

健身房预约数据库架构
EN

Stack Overflow用户
提问于 2016-01-07 23:00:11
回答 2查看 485关注 0票数 1

我正在开发一个在PHP / Symfony2 /Doctrin2中的健身房管理应用程序。我正在开发约会模块。约会不能是带有特定event_date(将要发生的日期)的单行,因为它每周持续几天,持续几个星期或几个月。如何通过以Calendar格式显示约会来设计用于保存约会区域的实体,其中某个月的每一天我都可以查看当天的约会?

提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2016-01-08 00:27:44

Appointment实体应该包含ID、描述符、start_date、end_date等信息。需要注意的重要一点是“开始”和“结束”,这为Appointment提供了跨越多天/几个月的灵活性。

在日历中,如果要显示开始日期和结束日期在1月1日到1月7日这一周之间的事件,则应使用以下查询生成器对象:

代码语言:javascript
复制
// In EntityRepository for Appointments

$this->getQueryBuilder('a')
     ->where('a.startDate BETWEEN :start AND :end')
     ->andWhere('a.endDate BETWEEN :start AND :end')
     ->setParameters([
        "start" => '2016-01-01',
        "end"   => '2016-01-07'
     ])
     ->getQuery()
     ->getResult();

如果您只想要一天的事件和当天结束的事件,那么您需要做的就是相应地调整参数。

票数 0
EN

Stack Overflow用户

发布于 2016-01-08 00:29:09

好了,这是一个很好的开始。我认为它满足了您设置的所有限制。我使用了一个组合键的cupple,但这是为了简化表格。

因为你设置了这样的限制:“因为它每周持续几天,持续几周或几个月”是错误的看待它的方式。您必须将约会的每个条目存储在表中(如果绝对需要,您可以使用xml文件,但最好的方法是按照您所想的那样使用mysql )

在这里,您将每个日期存储在C_date表中,然后在Appointment_date中引用该日期。这就是约会的时间。我可能已经删除了C_date,并在appointment_date中添加了信息。

代码语言:javascript
复制
create table User(
    user varchar(32) NOT NULL PRIMARY KEY
); 


create table C_date ( 
    c_date DATE NOT NULL PRIMARY KEY 
);

create table Appointment(
    user varchar(32) NOT NULL, 
    trainer varchar(32) NOT NULL,
    CONSTRAINT FOREIGN KEY(user) REFERENCES User(user), 
    CONSTRAINT FOREIGN KEY(trainer) REFERENCES User(user),
    CONSTRAINT id PRIMARY KEY(user, trainer)
); 


create table Appointment_date( 
    user varchar(32) NOT NULL, 
    trainer varchar(32) NOT NULL,
    app_date DATE NOT NULL COMMENT "The time and date for the appointment",
    time TIME NOT NULL, 
    CONSTRAINT FOREIGN KEY(user, trainer) REFERENCES Appointment(user, trainer),
    CONSTRAINT FOREIGN KEY(app_date) REFERENCES C_date(c_date), 
    CONSTRAINT id PRIMARY KEY(user, trainer, app_date) 

);

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

https://stackoverflow.com/questions/34658353

复制
相关文章

相似问题

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