OO设计问题(使用Symfony2)

时间:2012-04-18 20:41:19

标签: php oop database-design

我正在开发一个体育法庭预订系统,我需要生成一个“预订表”,将表格标题中的列显示为法院,将行显示为预订的时间段。

如,

 ___________________________________
|           |           |           |
|  Court 1  |  Court 2  |  Court 3  |
|___________|___________|___________|
|           |           |           |
| 10.00 am  |  10.00 am | 10.00 am  |
|___________|___________|___________|
|           |           |           |
| 11.00 am  |  11.00 am | 11.00 am  |
|___________|___________|___________|

要求:

  • 俱乐部可以有任意数量的法院
  • 俱乐部可以预订任何时间增量(例如,如上所示1小时,30分钟,40分钟等)
  • 表格中的每个单元格代表“预订”

我想确保我从一开始就这样做,所以我有几个问题:

  1. 您将创建哪些实体来实现此目标
  2. 您将如何制作此预订表
  3. 如何将上表中的单元格链接到预订
  4. 提前致谢。

3 个答案:

答案 0 :(得分:2)

嗯,我觉得这有点标准吗?

首先,你需要一个俱乐部实体。每个俱乐部都可以有n个球场:

Club 1:n Court

然后有一张预订表,即1:n到法院:

Court 1:n Booking

我不知道你的第二个要求是否意味着一个俱乐部有一个时间增量(在这种情况下这是俱乐部实体的一个变量),或者它是否有多个(比有一个TimeIncrement实体。) p>

生成表格可能有点棘手。考虑几分钟,我得到了5-6个解决方案,可能会有效。您可以使用特殊物品,您可以要求预订特定的法院和时间,以及搜索集合。我们你可以建立一个阵列,你每次都有一把钥匙,如果没有预订,它就是空的。每个法庭都有一个数组,而不是2个嵌套for循环并从数组中读取每个值。您可以构建重新排列数据的查询,以便直接使用它们。或者也许你可以在特定的日期和时间询问法院对象本身的预订。 但我想这就是开发人员的目的......找出最适合给定需求的方法并实现它。

答案 1 :(得分:1)

  

您将创建哪些实体来实现此目标

在我的头顶看起来你需要3:俱乐部,法院,预订

  

您将如何制作此预订表

该表应该包含id,court_id,start_time,end_time

  

如何将上表中的单元格链接到预订

如上所述,开始/结束时间是预订表中的列。

答案 2 :(得分:1)

我只是查询数据库中的数据并将其转换为json并将其传递到网站中。然后前端可以使用javascript构建表。

为此,我将创建一个custom entity BookingTable,它可以直接将请求数据作为数组返回,然后可以使用json_encode轻松地将其转换为json。

然后,您可以专注于显示单个预订的更详细的页面,您将自动创建所需的实体(如果您还没有为表格的自定义实体制定DQL)。