php怎么处理一对多,php - 如何处理内部连接以及与OOP的一对多关系? - SO中文参考 - www.soinside.com...
假设我有一个作者和文章表。一篇文章可以有很多作者。所以这是一对多关系。我创建了一个文章类和一个作者类。
class author
{
private $id;
private $name;
public function __construct($array)
{
foreach($array...
}
// getters...
// setters...
}
class article
{
private $id;
private $title;
private $content;
private $author = array();
public function __construct($array)
{
foreach($array...
}
// getters...
// setters...
public function setAuthor(author $author)
{
$this->author[] = $author;
}
}
注意setAuthor,一个setter依赖注入。它需要一个作者对象来保持一对多的关系(一篇文章,许多作者)。
我从数据库中检索了一篇文章。
$sql = $db->prepare("SELECT article.id AS id_article, title, content,
GROUP_CONCAT(author.id SEPARATOR ';') AS id_author,
GROUP_CONCAT(name SEPARATOR ';') AS name FROM article ar
INNER JOIN author au ON ar.id=au.article_id
WHERE article.id=:id GROUP BY article.id");
$sql->bindValue(':id', $id, PDO::PARAM_INT);
sql->execute();
$fromDb = $sql->fetch();
现在我必须构建对象,对吗?
$article['id'] = $fromDb['id_article'];
$article['title'] = $fromDb['title'];
$article['content'] = $fromDb['content'];
$id_author = explode(';', $fromDb['id_author']);
$name = explode(';', $fromDb['name']);
$newArticle = new article($article);
foreach($id_author as $key => $value)
{
$author['id'] = $value;
$author['name'] = $name[$key];
$newArticle->setAuthor(new author($author));
}
我发现最后一部分很重,不实用。我不确定这是正确的做法。许多关系都会出现同样的问题。
在这种特殊情况下,一旦从db获取数据,如何使用对象?
php怎么处理一对多,php - 如何处理内部连接以及与OOP的一对多关系? - SO中文参考 - www.soinside.com...相关推荐
- 作为项目经理,如何处理好与不同类型客户之间的关系?
作为项目经理,如何处理好与客户之间的关系非常重要.但是究竟如何处理客户关系呢?客户的人员都有哪些类型?不同类型的客户的应对是否都一样呢?下面我们来看看在日常工作中经常遇到的客户类型,应该如何处理跟他的 ...
- php一对多聊天程序代码,微信小程序实现一对多发消息
微信小程序中实现一对多发消息详解及实例代码 微信小程序中各个界面之间的传值和通知比较蛋疼.所以模仿了iOS中的通知中心,在微信小程序中写了一套类似的通知中心. 通知中心可以做到:1对多发消息,传递ob ...
- mysql一对多增删改查_SpringBoot+MySql+ElementUI实现一对多的数据库的设计以及增删改查的实现...
场景 业务中经常会用到一对多的数据库的设计与数据的增删改查的实现. 比如要实现一个对手机应用配置允许访问的权限的业务. app与权限就是一对多的关系.即一个app可以拥有多个权限. 注: 实现 首先设 ...
- 古典问题:有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月又生一对兔子,假如兔子都不死,问3年后的兔子总数是多少?
问题剖析: 1 1 2 3 5 8 13 21 34 55 89 144(1-12个月兔子的对数)当第三个开始,数值为前两项之和(斐波那契数列) public class ZuoYe2 {public ...
- mysql一对多如何设计_数据库在一对一、一对多、多对多怎么设计表关系
1.一对一可以两个实体设计在一个数据库中l例如设计一个夫妻表,里面放丈夫和妻子 2.一对多可以建两张表,将一这一方的主键作为多那一方的外键,例如一个学生表可以加一个字段指向班级(班级与学生一对多的关系 ...
- mysql一对多增删改查_SQLAlchemy 增删改查 一对多 多对多
#高级版查询操作,厉害了哦#老规矩 from my_create_table importUser,enginefrom sqlalchemy.orm importsessionmaker Sessi ...
- C语言-假设有一对兔子,出生第二个月变成了一对大兔子,第三个月后变成一对老兔子, 并开始每月出生一对小兔子,依次类推。求15个月内共有多少对兔子?
提示公式:F(1) = 1; F(2) = 1; F(n) = F(n - 1) + F(n - 2); n > 2 注意这里:第三个月就开始何时 #include <stdio.h> ...
- 故事得从西元1202年说起,话说有一位意大利青年,名叫斐波那契。 在他的一部著作中提出了一个有趣的问题:假设一对刚出生的小兔一个月后就能长成大兔, 再过一个月就能生下一对小兔,并且此后每个月都生一对小
public static void main(String[] args) {System.out.println(getCount(30));}//输入一个月份,返回这个月对应的兔子的对数publ ...
- 宫崎骏动画里的15对情侣,你最喜欢哪一对?
宫崎骏动画里的15对情侣,你最喜欢哪一对? <心之谷>月岛雫 天泽圣司 <地海战记>亚刃 瑟鲁 <风之谷>娜乌西卡 阿斯贝鲁 <霍尔的移动城堡>苏菲 霍 ...
- Hibernate一对多单向关联和双向关联映射方法及其优缺点
一对多关联映射和多对一关联映射实现的基本原理都是一样的,既是在多的一端加入一个外键指向一的一端外键,而主要的区别就是维护端不同. 它们的区别在于维护的关系不同: 一对多关联映射是指在加载一的一端数据的 ...
最新文章
- 2021年大数据Spark(四十八):Structured Streaming 输出终端/位置
- docker容器相关
- C++ exit 与 return 浅析
- 顺丰gis产品经理_线上面试季丰图科技—顺丰旗下专注GIS领域
- [JavaWeb-JDBC]JDBC概念
- 【BZOJ3328】PYXFIB【矩阵快速幂】【单位根反演】【二项式定理】
- 【HDU - 5418】Victor and World(tsp旅行商问题,状压dp,floyd最短路,图论)
- Hibernate所用15个jar包
- CV方向介绍 | 基于自然语言的跨模态行人ReID的SOTA方法简述(下)
- svo: semi-direct visual odometry 论文解析
- python的列表操作_在Python中列表的操作
- CentOS虚拟机挂载U盘
- JavaWeb框架三剑客前言
- 程序员的情人节「GitHub 热点速览 v.22.07」
- 汽车CAN 总线系统原理设计与应用 (一)
- vue 调用 js 获取的今天日期、本周、本月、本年起始和结束日期
- 90后首次购房心路历程
- 小米mix2android o升级,小米MIX2升级Android 8.0 全面屏手势操作将一同推送
- JAVA设计模式-06-建造者模式
- 5G+AI+大数据+IoT如何改变一切?