2

我是一个非常新的 php 开发人员,我正在为教育机构开发我的第一个系统,它包含员工、管理、学生、学生表现和付款细节。

我不确定数据库中的最佳方法是什么。我应该为所有数据使用单个数据库还是需要为提到的包含创建多个数据库。

您对此有何看法?

4

3 回答 3

4

不清楚你所说的数据库是什么意思:

  • 它是一个数据库中的模式吗?
  • 它是单个非集群实例吗?
  • 它是一个具有多个实例的集群吗?还是它是合乎逻辑的,您并没有真正询问数据存储机制的物理特性。

假设需求源于学校作业,一个数据库、一个模式和多个表就足够了。

如果您需要考虑高可靠性、冗余、故障转移 - 这将是一个完全不同的答案,很可能建议使用多个数据库实例。

如果您关心大规模,那将是另一个答案,可能建议使用集群数据库环境。

简而言之,您的要求是什么,有多少记录,多少用户,让数据库长时间停机数小时或数天有多重要?

于 2012-11-30T22:07:00.807 回答
2

包含多个表的单个数据库是最好的,imo。

因此,一个称为“研究所”的数据库或广泛包含数据的东西。在其中,您有一个针对每个用户、性能和付款的表格。用户应包含一行,指定用户是工作人员、管理员还是学生。付款和绩效应包含与用户 ID 相关联的字段。

于 2012-11-30T22:02:14.073 回答
2

一个带有许多表的数据库就可以了。它也将更便携,因为一些低成本的托管可能只给你一个数据库或增加另一个数据库的价格(现在很少见)。它肯定会更实用,因为您的所有 SQL 都会更简单。

您可以使用另一个数据库的一个原因是,如果您克隆第一个数据库并使用它在站点内容实际向公众显示之前向编辑者显示更新。我的意思是,当管理员或编辑撰写新帖子或更新信息时,您将其插入 db1。该站点的副本可以显示预览读取 db1,然后管理员按下发布按钮,您所要做的就是使用一条 sql 指令将 db1 克隆到 db2。这样,您就有了一个“登台”站点来测试条目,以及一个供其他人使用的公共站点。当然,您也可以使用重复的表来执行此操作,但在这种情况下,两个 db 对我来说感觉更干净、更简单。

于 2012-11-30T22:32:07.400 回答