这又是一个概念性问题(见上一篇文章Is there a difference between Object and Models in PHP/CodeIgniter?)
这是PHP上的CodeIgniter(MVC框架)。
我试图找出实现这个例子的最好(=实用,合理的原则)方法。
在我的例子中,在数据库模式中,因为我在codeigniter上使用了tank_auth,所以一个名为" users"已经为我自动创建(由tank_auth提供)。因此,这一个用户表代表我的图书借阅库应用程序中任何角色的所有用户。
一个人可以同时填补多个角色(贷方,作者,图书管理员,经理等)。我最初开始以为我应该有一个" people_model" (作为MVC中的M)但我现在想知道这样做是不是更好:
应该有一个"贷方"模特和"作者"模特和图书管理员"我很难解释为什么它有意义,但这可能是因为OOP原则"让课程专注于做一件事(单一责任)"。
这个原则所指的是这个例子吗?我的图书管理员" class(model)应该只有librarian函数。任何更多的东西只是一步太远了,并且有一个"人员"一般来说,它可以做一切由真实的人做的事情。太抽象了......我在这里走在正确的轨道上吗?我不得不做一些重新设计......但那是学习曲线。
答案 0 :(得分:0)
这实际上取决于您的用户做了什么,以及他们的角色有多么不同。有可能所有用户都有比共同点差异更多的东西。
您应该从处理基本用户功能的单个模型开始。如果您需要为不同的用户进行一系列特定的数据库调用,那么您可以构建其他特定于用户类型的模型。但是我不会从那开始,因为它几乎肯定是必须编写和维护更多代码(可能是一些重复的代码)而不是更少的代码。