这是我第一次尝试构建基于数据库的c#winform代码。
我将提出一个广泛的问题来启动我的数据库架构。
最有可能的是,该网站的管理员会给我一个负面的问题,但我仍然希望得到一些有经验的数据库评论。
我写的代码是根据日期收集数据。该应用程序将每周收集数据,每周股票价格将存储到数据库中。
有几种股票,我想存储。对于每个商店,我将保存价格信息。
我的数据库的 Stocks 表格如下:
日期 - 日期类型 股票名称 - 字符串 股票价格 - 浮动 股票代码 - 字符串 - >唯一键
数据库的另一个表将是市场表 在此表中,我将存储
股票代码 - 字符串 stock country - string 股票市场名称字符串
制作这样一个数据库的最佳方法是什么?
我需要根据日期列比较股票价格。
我应该为每个日期创建新表吗?或者我应该把它们存放在一张桌子里?
我需要存储和跟进大约1200支股票。
我将每周运行我的代码,我想处理我的数据。
感谢您的帮助。
PS:请不要告诉我使用C#以外的其他平台,不要提供任何现成的脚本。我想写自己的代码。
答案 0 :(得分:4)
我会像这样设计它
StockID (int,PrimaryKey)
StockName (varchar)
StockCode (varchar)
StockPrice (十进制)
<强> CreatedDate 强>(日期时间)
MarketId (int,主键)
StockCountry (varchar)
市场名称(varchar)
StockId (int,foriegn key引用Stock表格中的StockID)
你可以在任何数据库中创建它。因为你正在使用C#winforms,我建议你使用免费的SQL server express edition。
您不需要为每个日期添加另一个表,只需将记录添加到Stock表。您可以通过多种不同方式查询数据。这是出于这个问题。
编辑:根据您的评论,您说同一种股票会有多个价格,在这种情况下,我会从Price
分隔Stock table
并将其保存在第三个表格中。所以Stock表格只会有关于股票的信息。
因此表格看起来像
StockId (int,主键)
StockName (varchar)
<强> StockCode 强>(VARCHAR)
StockPriceId (int,PrimaryKey,您可以为此设置身份自动增量)
StockId (int,forign key引用Stock表格中的StockId)
价格(十进制)
CreatedDate (日期时间)
并且市场表保持不变。我认为这足以处理你的情况。此结构将帮助您根据日期比较数据。
答案 1 :(得分:2)
答案 2 :(得分:1)
我想,没有人会因为这个问题而拒绝你。为了方便起见,您应该从容易使用db开始,例如postgresql或mysql。不要误会我的意思。他们比oracle或sybase或mssql更强大但更容易使用。
答案 3 :(得分:1)