我打算在我的数据库中存储全局索引。 如此链接所示
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)
)
我的问题是,我真的没有看到制作两个表的任何用途? 我可以继续一张桌子,还是我错过了什么?
答案 0 :(得分:0)
这取决于您打算如何使用您的数据。如果您计划主要从index_values读取并且读取性能很重要,那么将所有数据反规范化到这一个表中是一种很好的方法,您可以删除“regions”表及其外键。
另一方面,如果您预见到想要在一个点重命名区域,则将不同表“区域”中的区域分开将是有利的,因此您只需更新一个区域记录而不是所有index_value记录与该地区。在这种情况下,您需要从index_values表中删除region_name字段。
您可能需要阅读https://en.wikipedia.org/wiki/Denormalization。
旁注:我会为你的表考虑一个不同的名称,因为索引是数据库的一个重要部分,它太混乱了。也许是“financial_indices”。