我正在开发一个主要基于 Zend Framework 组件的 CMS。此 CMS 的一些数据库表如下:
site
| id | name |
-------------
locale
| languageCode | regionCode |
-----------------------------
site_locale // link sites with locales
| siteId | languageCode | regionCode | isActive | isDefault |
-------------------------------------------------------------
我有一个名为的模型Site
,其中包括以下方法:
getId()
getName()
listLocales() // list all locales for this site
对于我应该如何定义模型,我有点犹豫:
一种选择是从该方法返回SiteLocale
对象/模型(换句话说,数据库表表示)listLocales()
,其中这些SiteLocale
对象包含以下方法:
getSite() // returns the Site model
getLocale() // returns a Zend_Locale
isActive() // is this locale active for the site this model represents?
isDefault() // is this the default locale for the site this model represents()
另一种选择是在模型中简单地创建以下方法Site
,并使用它来完成:
getDefaultLocale() // simply return the default site locale as Zend_Locale
listActiveLocales() // simply return all active site locales as Zend_Locales
listAllLocales() // simply return all site locales as Zend_Locales
您认为正确的方法是什么?为什么?
此外,第一个选项(或者甚至两个选项)会违反得墨忒耳定律吗?
编辑(1 月 22 日)
虽然我喜欢Jeff 的回答,但我仍然愿意接受新的/其他观点。