【发布时间】:2011-09-19 11:38:34
【问题描述】:
我即将开始一个新的 Web 项目,但我对如何构建整个项目以获得最佳性能有点困惑,希望有人能在这里帮助我。我将使用 MySQL 使用 PHP 编写它。
整个过程将是一个自动预订系统,客户可以在其中预订特定日期,有点像航空公司的系统。所以会有很多预定的活动(例如,从 3 月到 9 月的每个星期一、星期五),少数例外(例如 2 月的单个活动)。这些预定的活动将有几个不同的“主题”,根据主题和日期不同定价(例如,3 月至 4 月便宜,5 月至 9 月昂贵)。一切都应该是可变的(例如价格、时间表、最大参与者)
我想过创建三个表:
- 活动[有关日程安排天数、价格和最大参与者的信息]
- 客户 [客户信息和对活动 ID/预订 ID 的引用]
- bookings [包含每天的参与者数量(参考活动和客户)以及可能的例外情况,例如价格变化、不同参与者限制等]
希望这不是不清楚我在这里尝试什么... 我试图只关注日历上的速度,它检查预订表并输出当天是否已经预订完毕[带有事件表的预订表]以及当前价格是多少。不过,管理面板也应该很快,以便列出所有预订或访问某一天。
现在让我们来看看真正的东西...... 也许我采取了错误的方法来以这种方式拆分数据,但是在批量更改方面显然存在一些缺陷,因为我必须在预订表中插入许多异常或为活动创建新条目并更改旧的一,在我看来有点乱(特别是当你有多个例外时)。无论如何,我最终会得到大量条目,而我实际上希望将系统维护得更加自动化,比如只需要一些计划并让 PHP 完成其余的工作(猜想这比查询 MySQL 更快)。
那你怎么看?我想不出任何其他的数据分离。最简单的编码可能是为每一天和每一个事件实例化一个数据库条目,但我想我妈妈可以看出这是蹩脚和缓慢的。
【问题讨论】:
-
数据库系统旨在有效地处理数据。得到最清晰、最符合逻辑的数据结构,正确规范你的数据库,现阶段不用担心性能问题。
标签: mysql database data-structures