我计划在我的数据库中存储全局索引。如本链接
所示https://in.finance.yahoo.com/intlindices?e=asia为了存储,我提出了以下设计
CREATE TABLE regions(
region_name varchar(100),
)
CREATE TABLE index_values(
region_name varchar(100),
country_name varchar(50),
symbol_name varchar(50),
LastTradePrice varchar(20),
ChangeinPercent varchar(20),
Changeinpoints varchar(20),
LastTradeTime varchar(20),
FOREIGN KEY reg_index(region_name)
REFERENCES regions(region_name)
)
我的问题是,我真的看不出制作两个表有什么用?我可以继续与一个表或我错过了什么?
这取决于您打算如何使用您的数据。如果您计划主要从index_values中读取,并且读取性能很重要,那么将所有数据反规范化到这一个表中是一种很好的方法,您可以删除"regions"表和它的外键。
另一方面,如果您希望在某一点上重命名一个区域,那么在不同的表"regions"中分隔区域将是有利的,这样您只需更新一个区域记录,而不是使用该区域更新所有index_value记录。在这种情况下,您需要从index_values表中删除region_name字段。
你可能想阅读https://en.wikipedia.org/wiki/Denormalization.
旁注:我会考虑为你的表取一个不同的名字,因为索引是数据库的重要组成部分,它太混乱了。也许"financial_indices"。