调查应用程序的关系数据库架构

时间:2018-08-04 10:13:46

标签: mysql database cakephp database-design

我希望学习CakePHP,并逐步完成了教程并开始掌握概念。但是,我已经取得了进步,现在正在尝试设计一个调查样式的应用程序,以了解有关相关表和关联实体的更多信息。

我突然认为这将是一个相当简单的项目,以促进我的学习,但是我认为我低估了数据库的复杂性,因此我问是否有人能举例说明构建数据库的最佳方法。

我的最终目标是:

  • 该应用将包含客户。
  • 该应用将包含问题。
  • 客户可以进行很多调查。
  • 调查可能包含许多问题。
  • 调查可以包含许多答案(每个答案都与 调查)。

我从下面的模式开始,但是我不确定这是最理想还是最合适的设计。是否有人对建议的架构有任何想法?我希望听到一些反馈或建议。

Proposed database schema

1 个答案:

答案 0 :(得分:0)

我相信您的架构可能会稍微简单一些。除非您计划在多个调查中重复使用相同的问题,否则questions_surveys链接表似乎有些多余。除此之外,您还可以满足要求列表。可以省略答案和调查之间的链接,因为您可以通过问题实体将答案链接回调查,但是为方便起见,使用survey_id字段没有任何危害。

下一步是在Cake中设置所有模型关系,其形式为:

  • 客户有很多调查
  • 调查属于客户
  • 调查 hasMany 问题(或hasAndBelongsToMany取决于是否重复使用问题)
  • 问题属于调查
  • 问题有一个答案
  • 回答属于问题