Maj*_*son 1 php mysql codeigniter codeigniter-datamapper
我一直在与Codeigniter建立关系数据库,发现DataMapper对于严肃的项目来说是无用的.Codeigniter的活动记录是无用的,因为它不提供多对多或一对多的方法.DataMapper速度慢且不可配置!
这似乎是社区的共识.你建议在php中使用纯mysql来执行多对多和一对多的操作吗?或者你认为我错了!请随时告诉我.我的问题是,作为专业的网页设计师,您使用什么来建立数据库?
Wan*_*ard 17
有点奇怪的说法.
您可以定义需求,然后选择满足这些要求的工具,而不是相反.
Datamapper是一个ORM,一个对象关系映射器.在这种情况下,一个遵循Active Record设计模式(不要将其与CI的AR混淆,它不是活动记录,它是一个查询构建器).它将数据实体(在本例中为RDBMS表中的记录)映射到对象,并且它知道这些对象之间的关系.
这是ORM的作用.它比使用PHP的本机函数直接访问数据库慢吗?绝对.添加的任何抽象级别都将增加处理时间.
ORM的目标不是数据操作中最快的,它的目标是从控制器逻辑中抽象出数据操作,这样可以更轻松,更快速地编写应用程序,并且更快地维护这些应用程序.正如商业环境中的时间= =金钱,这就是利益所在.如果您免费编码并在两位共享主机上运行代码,那么ORM可能不适合您.
另外,ORM不是瑞士军刀.它是为特定目的而设计的,这是一种面向对象的数据收集方法,并操纵这些集合及其关系.
如果它不是正确的工具,请不要使用它.如果您需要根据一些奇怪的标准批量更新一百万条记录,请改为编写本机SQL查询.在自定义模型方法中执行此操作,以保持从控制器中抽象出数据操作代码.
至于你的具体意见:
如果您是一名专业的Web设计人员,您应该了解使用MVC架构设计和构建应用程序的正确方法,并使用正确的工具集来完成工作,以便您可以及时地向客户交付应用程序.
时间==金钱,如果你能更快地交付,并且你可以更快地维持或改进,你将留住你的客户.ORM可以帮助您.但是不要将它用于不应该做的事情.