我遇到了一个关于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();
}
深层结构将创建更多代码,但更多依赖项和更好的安全性,您无法通过父模型访问模型。
平面结构将创建更少的代码,但缺少安全部分。
你会怎么做?