我是一名初级程序员,尤其是数据库设计的新手。
不久前,我在业余时间创建了一个程序来跟踪和绘制 java 中的股价变化。当时我懒得为它安装一个数据库,所以它只是使用一堆 CSV 文件来存储数据,每个股票都被跟踪(例如 GOOG.csv、BHP.csv)。
我决定更新它以使用数据库作为学习活动,但在我的设计中我遇到了障碍。我应该继续我之前为每只股票设计的单独数据堆还是整合它们。也就是说,我应该为每个跟踪的股票创建一个表格,并为每天的数据创建一条新记录,还是应该有一个带有股票标识符的通用“股票数据”表。
第一个似乎更直接,获取所有记录就像
SELECT *
FROM GOOG
第二个在哪里
SELECT *
FROM stock_data
WHERE stock_name="GOOG"
就像我说的,我是一个完全的数据库新手。对我来说,第一个似乎会更快,但总体而言是一个糟糕且难以管理的设计,无法很好地扩展。如果第一个很好,第二个似乎可能会不必要地慢。
我意识到,由于我的项目规模,任何一个都可能工作得很好,但作为这类问题的规则,哪一个是正确的设计选择?
欢迎任何 sage DB 设计建议。:)