0

我想知道哪个是从两个表中检索包含数据的对象的最佳方法。就我而言,我想检索一个投资组合项目,该项目在投资组合项目表中具有数据,并在一个单独的表中包含图像。

现在我正在努力寻找在对象中检索这些项目的最佳方法。在第一种方式中,我一次在我的 Data 类中检索所有内容并返回完整的对象,而第二种方式从两个不同的数据类(一个用于一般投资组合信息,一个用于图像)构建对象。

现在我只是想知道,有没有一种方法比另一种更好,或者两种方法都可以接受?一次获取所有数据是否可以,还是应该像第二种方式一样将其分解?

我有两个表:portfolioItem 和portionItemImage 我有一个类

PortfolioItem{
    public $portfolioItemId;
    public $name;
    public $images //array
}

1:

$dataPortfolioItem = new DataPortfolioItem();
$theItem = $dataPortfolioItem->getPortfolioItem(5);
DataPortfolioItem{
    public function getPortfolioItem($theId){
        //create a new portfolio item
        //get the portfolio data from portfolioItem table and fill in the id and name
        //get the image data from image table and set the images array from the object
        //return the object with the data and images included
    }
}

2:

$dataPortfolioItem = new DataPortfolioItem();
$theItem = $dataPortfolioItem->getPortfolioItem(5);
$dataPortfolioItemImages = new DataPortfolioItemImages();
$theItem->images = $dataPortfolioItemImages->getPortfolioItemImages(5)

DataPortfolioItem{
    public function getPortfolioItem($theId){
        //create a new portfolio item
        //get the portfolio data from portfolioItem table and fill in the id and name
        //return the portfolio item     
    }
}

DataPortfolioItemImage{
    public function getPortfolioItemImages($theId){
        //get the images from the database table and return them in an array
    }
}
4

1 回答 1

1

“在我的情况下,我想检索一个投资组合项目......”。如果是这种情况,您的数据访问层 (DAL) 应该返回 Portfolio 对象,而不是在两个单独的对象中返回它的一部分。

关于设计的一些一般性的事情。你的应用逻辑应该基于你的模型,不应该知道数据存储细节。如果是这种情况,那么您的 DAL 应该只提供模型对象。

旁白:“方式从两个不同的数据层构建对象,一个用于portfolioItem 数据,一个用于图像。” 层层可能是指表格。层是不同的东西。

于 2012-11-05T18:21:21.737 回答