需要帮助决定报告项目的数据库方案(PHP)

时间:2010-07-08 13:00:45

标签: php database database-design

1 个答案:

答案 0 :(得分:1)

如果没有您希望解析的数据样本然后存储它很难说您需要从哪里开始。有人可能会建议合理的数据库架构,或者至少可以说3NF架构是否可行。

根据您提供的内容,是否了解更多信息或继续使用非规范化数据库的问题需要考虑时间,精力以及数据库的使用范围。

规范化的3NF架构将:

  • 花费最长的设计时间
  • 启用最小复杂性应用程序
  • 提供了一个优秀的位置,从而可以在性能方面进行非规范化

非规范化架构将:

  • 花费最少的设计时间(最快的选项:每个CSV行一个DB行)
  • 将复杂性从数据库层转移到应用层
  • 目前未来的维护噩梦

应用层始终可以弥补应用程序复杂性,从而弥补数据库层的缺点。复杂性可以通过智能软件设计进行管理,良好的OO设计可以使复杂的外观变得简单。考虑一下你最强大的技能所在。

如果您的技能不在数据库架构设计中,并且您可以处理增加的应用程序复杂性,那么请快速进行架构设计并着手实现应用程序的运行。结果在商业环境中胜过完美。

如果您有足够的时间,请详细了解数据库模式,并找到适合您数据的3NF表单。

请记住,性能与使用频率有关。如果您需要每分钟从应用程序生成一个报告,那么性能可能会给用户带来痛苦,如果报告每天运行,则不会感到痛苦,如果报告生成是自动化的,并且每天发生一次,则不会产生任何痛苦。< / p>

理想的方法是:

  • 确定数据之间的关系(某人知道您不控制这些脚本的工作方式)
  • 创建一个好的3NF架构
  • 创建所需的最不复杂的应用程序(由良好的3NF架构辅助)
  • iterate:根据性能和用户反馈,根据需要进行反规范

请记住业务考虑因素。在两周内找到有效的东西而不是两个月内完美的东西可能是更好的选择。您可能难以说服管理两个月解决方案的时间和成本(这可能需要您进行广泛的学习)。

如果您不确定要采取的方向:

  • 选择最易于管理的最便捷的选项
  • 确保您了解设计中的缺点
  • 让管理层了解您的快速选项的缺点以及需要多少时间/成本投资来克服这些缺点
  • 在你开始之前,你永远都不知道是否有任何明显的缺点确实会成为问题
  • 根据使用级别,您的快速工作选项可能已经足够了