3

目前我有一个相当大的项目,我需要为不同类型的用户存储不同的数据。

我需要存储模型的身体细节。

我遇到的问题是,女性的身体信息与男性不同,而机构、摄影师不需要身体信息,而且用户是分组的

group 3 - Model
group 4 - Agency
group 5 - photographer

在我看来,我目前正在这样做

if ($group == 3 && $gender == 2) 
{
    // load female body information (lot of details)
} 
elseif ($group == 3 && $gender == 1) 
{
   // load male body information (lot of details)
} 
else 
{
    // load just work explerience & company info
}

将用户信息存储在 3 个表中

users         . login information
users_details - users details, like first last name gender ect
users_body    - Body information for models both female / male

那么为什么我要寻求一种更有效方法的提示,因为我需要在 3 个不同的页面上显示这种类型的信息,而且我认为它会变得混乱并导致大量代码重复

如果有人能给我任何建议的提示,我会很高兴

谢谢你

4

2 回答 2

5

在视图之外处理此逻辑,并让逻辑的结果为视图设置一个具有适当结果的变量。至于避免“if-tree”,策略模式可能会根据情况派上用场。

于 2013-03-27T07:58:33.960 回答
3

正如已经说过的,您应该在视图之外处理这个问题。
DB 表中的单词store data和表示应该是使用模型的提示。您可能有一个父类(可能是抽象类)Model,或者Body您可能在子类中扩展它,Male并且Female.
对于处理不同的用户角色,通常 ACL(访问控制级别)是正确的策略。
此外,所有这些都应该由控制器在逻辑上处理,您可以从中将所需的和过滤的信息传递给视图。

于 2013-03-27T08:10:23.997 回答