MVC模型结构平面层次结构

时间:2010-12-08 11:11:50

标签: model-view-controller model hierarchy

我遇到了一个关于MVC模式中可能的模型层次结构的问题。

考虑以下情况:

数据库有三个表。 画廊 专辑 图像

该画廊有0 .. *专辑 这张专辑有0 .. *图片

每张桌子我也有一个型号,因此有三个型号。问题是;我应该采用扁平结构还是深层结构。

如果我想重命名图像,我们将以下内容编写代码片段。

深度结构是考虑模型之间的层次结构。

public function RenameImage($intAlbumId, $intImageId, $strNewName)
{
    $objGallery = new Gallery();
    $objGallery ->LoadByInput($intPackageId);
    $objAlbum   = $objGallery->GetAlbum($intAlbumId);
    $objImage   = $objAlbum->GetImage($intImageId);

    $objImage   ->SetName($strNewName);
    $objImage   ->Save();
}

或扁平结构:

public function RenameImage($intImageId, $strNewName)
{
    $objImage   = new Image();
    $objImage   ->LoadById($intImageId);
    $objImage   ->SetName($strNewName);
    $objImage   ->Save();
}

深层结构将创建更多代码,但更多依赖项和更好的安全性,您无法通过父模型访问模型。

平面结构将创建更少的代码,但缺少安全部分。

你会怎么做?

0 个答案:

没有答案