我应该为我的代码使用什么类型的数据库?

时间:2012-04-03 18:24:21

标签: c# database

这是我第一次尝试构建基于数据库的c#winform代码。

我将提出一个广泛的问题来启动我的数据库架构。

最有可能的是,该网站的管理员会给我一个负面的问题,但我仍然希望得到一些有经验的数据库评论。

我写的代码是根据日期收集数据。该应用程序将每周收集数据,每周股票价格将存储到数据库中。

有几种股票,我想存储。对于每个商店,我将保存价格信息。

我的数据库的 Stocks 表格如下:

日期 - 日期类型 股票名称 - 字符串 股票价格 - 浮动 股票代码 - 字符串 - >唯一键

数据库的另一个表将是市场表 在此表中,我将存储

股票代码 - 字符串 stock country - string 股票市场名称字符串

制作这样一个数据库的最佳方法是什么?

我需要根据日期列比较股票价格。

我应该为每个日期创建新表吗?或者我应该把它们存放在一张桌子里?

我需要存储和跟进大约1200支股票。

我将每周运行我的代码,我想处理我的数据。

感谢您的帮助。

PS:请不要告诉我使用C#以外的其他平台,不要提供任何现成的脚本。我想写自己的代码。

4 个答案:

答案 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)

StockPrices表

StockPriceId (int,PrimaryKey,您可以为此设置身份自动增量)

StockId (int,forign key引用Stock表格中的StockId)

价格(十进制)

CreatedDate (日期时间)

并且市场表保持不变。我认为这足以处理你的情况。此结构将帮助您根据日期比较数据。

答案 1 :(得分:2)

如果您使用的是.NET平台,MSSQL将是您的最佳选择 enter image description here

您可以从免费MSSQL Express Edition

开始

如果安装了Visual Studio,则可以立即开始使用MSSQL, enter image description here

答案 2 :(得分:1)

我想,没有人会因为这个问题而拒绝你。为了方便起见,您应该从容易使用db开始,例如postgresql或mysql。不要误会我的意思。他们比oracle或sybase或mssql更强大但更容易使用。

答案 3 :(得分:1)

您将使用visual studio(我假设),因此您可以使用内置于IDE中的MS-SQL。

您应该考虑使用实体框架来处理数据,将数据库记录转换为对象使它们更容易使用。

我知道你说你想使用winforms,你有没有机会换成基于网络的解决方案?

我问,因为MVC在这里是一个不错的选择。

Here's一个教程 这是一个很好的网页表格教程页面

相关问题