我正在开发一个在PHP / Symfony2 /Doctrin2中的健身房管理应用程序。我正在开发约会模块。约会不能是带有特定event_date(将要发生的日期)的单行,因为它每周持续几天,持续几个星期或几个月。如何通过以Calendar格式显示约会来设计用于保存约会区域的实体,其中某个月的每一天我都可以查看当天的约会?
提前谢谢你。
发布于 2016-01-08 00:27:44
Appointment实体应该包含ID、描述符、start_date、end_date等信息。需要注意的重要一点是“开始”和“结束”,这为Appointment提供了跨越多天/几个月的灵活性。
在日历中,如果要显示开始日期和结束日期在1月1日到1月7日这一周之间的事件,则应使用以下查询生成器对象:
// 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();如果您只想要一天的事件和当天结束的事件,那么您需要做的就是相应地调整参数。
发布于 2016-01-08 00:29:09
好了,这是一个很好的开始。我认为它满足了您设置的所有限制。我使用了一个组合键的cupple,但这是为了简化表格。
因为你设置了这样的限制:“因为它每周持续几天,持续几周或几个月”是错误的看待它的方式。您必须将约会的每个条目存储在表中(如果绝对需要,您可以使用xml文件,但最好的方法是按照您所想的那样使用mysql )
在这里,您将每个日期存储在C_date表中,然后在Appointment_date中引用该日期。这就是约会的时间。我可能已经删除了C_date,并在appointment_date中添加了信息。
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) );

https://stackoverflow.com/questions/34658353
复制相似问题