数据库(MySQL)结构化:多个表的优缺点

时间:2012-10-25 22:56:27

标签: mysql database

我正在收集数据并将其存储为MySQL,用于:

  • 75个变量
  • 55个国家/地区
  • 每年

在此阶段,我正在构建此工具,创建了一个变量/国家/地区的表格(存储了1年的数据)。

明年(以及之后的几年)将为每个国家输入一组新的数据。

因此,控制返回给用户的数据有3个变量,用于查看所有收集的数据。任何查询的一般形式是:

  • 针对这些特定国家/地区的这些特定年份显示这些细节变量。

(显示我的平均年龄和体重,例如美国和加拿大,2012年和2009年)

我的问题是,似乎我有两个选项来安排这些数据: - 收集多个表格,我为每年的数据创建一个 country / variable 表 - 单个表,只需添加数据所涉年份的列(字段)。

据我所知,我可以使用任何结构进行这些数据库调用,但是更强大/更有效/更快,为什么?

感谢您的考虑。

如果它是相关的,它是一个PDO / PHP接口。

1 个答案:

答案 0 :(得分:0)

使用关系方法通常涉及更多表。这转化为查询更慢(尽管在小型数据库中可能不明显),数据库大小更小。这样可以更加简单地更新信息,从而确保数据的完整性。例如,如果Joe的地址发生变化,您知道将使用Joe的地址更改所有报告。

使用较少链接的表,其中一个字段可以重复多次,您可能会有来自不同表的数据之间的差异,您自然希望它们是相等的。如果您正确排列表格,访问速度应该会快一些,因为您的信息将根据您的访问方式进行分组。

例如,在第一种方法中,您将拥有一个Orders表,其中SupplierClient表可以生成完整的发票,而在第二种方法中,您可能需要放一些Supplier表中ClientOrders的信息,以便访问该查找与您要查找的发票号对应的行将返回您需要的整个数据集(因此消除了对SupplierClient上的连接的需要,并减少了数据库服务器上的负载。

编辑:我认为更好的答案需要更多关于您的数据的信息(例如样本)。