Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 具有变化属性的对象建模_Ruby_Oop_Database Design_Entity Relationship - Fatal编程技术网

Ruby 具有变化属性的对象建模

Ruby 具有变化属性的对象建模,ruby,oop,database-design,entity-relationship,Ruby,Oop,Database Design,Entity Relationship,我试图用Ruby创建一个简单的程序来跟踪股票的价格走势,但我不完全确定应该如何设计它 基本上,我考虑的是一个类Stock,包含所有属性,如name、desc等。但是,我不确定price属性如何工作。因为对于每只股票,我还想跟踪价格的历史,并将其绘制在图表上。所以,我的问题是,我是否应该创建另一个类,Prices并将其与Stock关联?还是有更好的办法 我是OOD的新手,希望得到一些解释、有用的链接或其他建议。提前感谢您。其中一些取决于您对DB:OO、document或relational的选择。

我试图用Ruby创建一个简单的程序来跟踪股票的价格走势,但我不完全确定应该如何设计它

基本上,我考虑的是一个类Stock,包含所有属性,如name、desc等。但是,我不确定price属性如何工作。因为对于每只股票,我还想跟踪价格的历史,并将其绘制在图表上。所以,我的问题是,我是否应该创建另一个类,Prices并将其与Stock关联?还是有更好的办法


我是OOD的新手,希望得到一些解释、有用的链接或其他建议。提前感谢您。

其中一些取决于您对DB:OO、document或relational的选择。如果您使用的是典型的关系数据库,那么您将有一个表示价格和股票之间一对多关系的价格表

看起来你们应该为价格设置一个单独的类,因为我假设你们会想随着时间跟踪价格。我知道这不是Ruby,但您的Stock类可能看起来像这样:

public class Stock
{
  public int Id { get; set; }
  public string Name { get; set; }
  public string Description { get; set; }
  public List<Price> PriceHistory { get; set; }
}
注意:您需要忽略一个事实,即ID是公共的,因此可以由外部类更改。然而,为了简单起见,此代码以这种方式呈现


希望这能有所帮助。

谢谢你让它简单明了。我现在看得更清楚了,股票对象将与价格有一对多的关系,因为它与时间有不同的价格。顺便说一句,有什么书籍推荐或资源可以让我学习对象建模吗?更适合web应用程序?这两个确实帮助了我:和。我不知道web应用程序的对象建模应该改变,除了跨网络使用DTO。无论部署场景如何,域模型仍然是域模型。
public class Price
{
  public int StockId { get; set; }
  public DateTime PriceDate { get; set; }
  public decimal Price { get; set; }
}