目录
回复讨论(解决方案)
首页 后端开发 php教程 用MVC架构时,怎么进行多表联合查询?求一比较优秀的解决办法

用MVC架构时,怎么进行多表联合查询?求一比较优秀的解决办法

Jun 23, 2016 pm 01:50 PM
mvc 优秀 架构 解决办法

用MVC架构时,怎么进行多表联合查询?求一比较优秀的解决办法 


回复讨论(解决方案)

任何框架都不可能预测你的需求
你只能按框架的约束组织你的数据

多表查询和MVC框架没有任何关系。

我给你说一些常用的方法吧,

1. 简单的,select 嵌套 select : select A.c1,A.c2,(select B.c3 from B where A.c4=B.c5) from A where c6=xxx

2. 简单的,select多表: select A.c1,A.c2,B.c3,B.c4 from A,B where A.c5=B.c6

3. 灵活的 join, left join, right join, outer join

4. union, union all

5. 上面两种或多种混合使用

其实难的sql查询还有很多情况,MVC框架不能够帮你进行多表查询的优化,所以优化了一条查询语句,可能就会让你的系统效率更高。

仅代表个人愚见,笑纳。

多表查询和MVC框架没有任何关系。

我给你说一些常用的方法吧,

1. 简单的,select 嵌套 select : select A.c1,A.c2,(select B.c3 from B where A.c4=B.c5) from A where c6=xxx

2. 简单的,select多表: select A.c1,A.c2,B.c3,B.c4 fr……



我只是想知道,在用MVC开发时,是怎么转向到原生态的SQL,是直接在控制里写很多JOIN 这些吗?

任何框架都不可能预测你的需求
你只能按框架的约束组织你的数据



大侠,可不可以举一两个例子。

如果你用的框架有规范,则按照它的规范来写
如果没有,则原生的 SQL 应该可以。多表查询也是如此。

如果你用的框架有规范,则按照它的规范来写
如果没有,则原生的 SQL 应该可以。多表查询也是如此。



框架有提供一些规范,我是用TP的来做的。之前没有用框架时,就是写了很多的JOIN语句,发现维护起来不容易,如果要修改,要重新去理解去读懂,有可能还会改错了,或范一些比较低级的错误,比如写单引号忘了写之类的。

见手册  6.23  关联模型

我有一个疑问,类似 销售订单表和客户表、用户表,这种表的关系,用面向对象要怎么设计呢

手册上不是有例子吗?

如果你用的框架有规范,则按照它的规范来写
如果没有,则原生的 SQL 应该可以。多表查询也是如此。



+++ 是的......

引用 3 楼 wangzhlin 的回复:多表查询和MVC框架没有任何关系。

我给你说一些常用的方法吧,

1. 简单的,select 嵌套 select : select A.c1,A.c2,(select B.c3 from B where A.c4=B.c5) from A where c6=xxx

2. 简单的,select多表: select A……



根据框架封装的db类了,查看手册或代码,或者你自己用原生的sql连接去写,数据库部分不用框架。

希望对你有帮助。

楼主可以封装成为视图  直接实例化试图就可 如果网站不是很大的话

多表联合查询跟mvc有什么关系?你还是没真正理解mvc是什么。

把你的联合查询封装在model里,由controller去调来获取数据就可以了。



楼上说封装成db的视图,也是一种方法。我发现很少有人在mysql上使用视图。不知为什么。其实视图可以解决很多问题。比如表结构更新后,只需要重新创建视图名称不变就可以了。而不用再去修改代码。可能是现在的新技术太多了,大家都不屑于使用这些老技术了。

谢谢各位的意见。
其实我想针对这种表联合查询的情况,做一个比较好的处理方案,为以后维护方便。最好是能结合类。我之前的系统是用原生态的SQL,发现修改时,容易写错是一个原因,也不好理解这个业务流程。
如果能把表与表的关系,用类来表现,这个方法不知怎么样。

多表查询和Mvc有什么关系

我的系统是用MVC架构的,而一个系统功能里,都会有多表查询的情况。
那么我想知道的是,各位在使用MVC架构开发时,遇到这种多表查询的情况,是直接用原生态SELECT,还是用视图或者存储过程

一般都是 原生态SELECT ,你可以去看看 mvc框架或者cms 的源码就知道了。

一般都是 原生态SELECT ,你可以去看看 mvc框架或者cms 的源码就知道了。


如果用原生态SELECT连接查询出来的数据,用什么对象接收啊?
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

鼠标滚轮失灵上下乱跳怎么办?分享三种解决办法 鼠标滚轮失灵上下乱跳怎么办?分享三种解决办法 Mar 13, 2024 pm 07:28 PM

  鼠标是非常重要的电脑外设之一,但是在使用过程中不免会出现鼠标滚轮失灵或上下乱跳的情况,非常影响用户的操作,那有什么办法可以解决这一问题吗?下面就来看看三个解决鼠标滚轮乱跳的办法。  方法一:检查鼠标不同品牌生产的鼠标各具特点。一些鼠标滚轮灵敏度高或阻尼较低,可能会导致滚轮跳动不稳定。为了确定问题是否源自鼠标本身,您可以轻轻触摸鼠标滚轮,观察屏幕页面的移动情况。如果发现鼠标滚动过于灵敏,可能需要考虑购买一款新的鼠标来解决这一问题。  方法二:检查鼠标设定  鼠标设置不当可能会导致鼠标滚轮乱跳,

解决PyCharm无法启动的方法分享 解决PyCharm无法启动的方法分享 Feb 20, 2024 am 09:46 AM

PyCharm是一款功能强大的Python集成开发环境(IDE),广泛应用于Python开发者的日常工作中。然而,有时候我们可能会遇到PyCharm无法正常打开的问题,这可能会影响我们的工作进度。本文将介绍一些常见的PyCharm打不开的问题以及解决办法,并提供具体的代码示例,希望能帮助你顺利解决这些问题。问题一:PyCharm闪退或无响应可能原因:PyCh

错误629宽带连接解决办法 错误629宽带连接解决办法 Feb 20, 2024 am 08:06 AM

错误629宽带连接解决办法随着互联网技术的迅猛发展,宽带已成为我们日常生活中不可或缺的一部分。然而,有时我们在使用宽带时可能会遭遇一些问题,例如错误629宽带连接错误。这个错误通常会导致我们无法正常上网,并带来诸多不便。在本文中,我们将分享一些解决错误629宽带连接的方法,帮助你快速解决这个问题。首先,错误629宽带连接问题通常是由于网络配置或驱动问题引起的

分享Edge浏览器不支持此插件的三种解决办法 分享Edge浏览器不支持此插件的三种解决办法 Mar 13, 2024 pm 04:34 PM

  用户使用Edge浏览器的过程中可能会添加一些插件来满足自己更多的使用需求。但是在添加插件时显示不支持此插件,这该如何解决?今日小编就来给大家分享三种解决办法,快来试试吧。  方法一:尝试用其他的浏览器。  方法二:浏览器上的FlashPlayer可能过时或者丢失,导致此插件不受支持状态,可在官网下载最新版本。  方法三:同时按下“Ctrl+Shift+Delete”键。  点击“清除数据”,重新打开浏览器即可。

洗衣机按键失灵的解决办法(教你如何应对洗衣机按键失灵问题) 洗衣机按键失灵的解决办法(教你如何应对洗衣机按键失灵问题) Jul 24, 2024 pm 03:58 PM

洗衣机在我们日常生活中扮演着重要的角色,然而,偶尔会发现洗衣机的按键失灵的情况。这种情况可能会让我们感到困扰,因为它会影响我们正常的洗涤操作。但是,不用担心,本文将为大家介绍一些解决洗衣机按键失灵问题的方法。1.检查电源连接-插头是否插好:确保洗衣机的电源插头牢固地插入插座中。-电源开关是否打开:检查电源开关是否处于打开状态。2.清洁按键表面-关机:先将洗衣机关机,并拔掉电源插头,确保安全。洗衣机按键失灵故障排除温水清洁使用温水和中性清洁剂轻轻擦拭按键表面。按键调节和重启调节按键位置:检查按键是

pyqt5安装报错的常见问题及解决办法 pyqt5安装报错的常见问题及解决办法 Jan 19, 2024 am 10:00 AM

随着Python的流行,PyQt5成为了很多人快速进行GUI开发的首选工具之一,但是,安装问题也是不可避免的。以下是几个PyQt5安装的常见问题及其解决方法。PyQt5安装时报错提示找不到sip模块的解决办法这个问题通常在使用pip安装PyQt5时出现。这个错误的原因是缺少sip模块的依赖,所以需要先手动安装sip模块。命令行输入以下代码:pipinsta

Spring Data JPA 的架构和工作原理是什么? Spring Data JPA 的架构和工作原理是什么? Apr 17, 2024 pm 02:48 PM

SpringDataJPA基于JPA架构,通过映射、ORM和事务管理与数据库交互。其存储库提供CRUD操作,派生查询简化了数据库访问。此外,它使用延迟加载,仅在必要时检索数据,从而提高了性能。

1.3ms耗时!清华最新开源移动端神经网络架构 RepViT 1.3ms耗时!清华最新开源移动端神经网络架构 RepViT Mar 11, 2024 pm 12:07 PM

论文地址:https://arxiv.org/abs/2307.09283代码地址:https://github.com/THU-MIG/RepViTRepViT在移动端ViT架构中表现出色,展现出显着的优势。接下来,我们将探讨本研究的贡献所在。文中提到,轻量级ViTs通常比轻量级CNNs在视觉任务上表现得更好,这主要归功于它们的多头自注意力模块(MSHA)可以让模型学习全局表示。然而,轻量级ViTs和轻量级CNNs之间的架构差异尚未得到充分研究。在这项研究中,作者们通过整合轻量级ViTs的有效

See all articles