php - 在 PHP 和 MySQL 中存储和检索具有可搜索数组数据的对象

标签 php mysql orm

想象一下你有一个类

class Person {
 public $id;
 public $name;
 public $cars = array();
}

其中 $cars 是汽车数组(例如 array('mercedes', 'toyota'))。

您将如何将该数据存储在数据库中,以便可以搜索数组(例如,选择所有拥有丰田汽车的人)并使用相同的查询检索完全填充的对象(例如,获取属于的所有其他汽车)那些人也是)。

编辑:

“存储对象”是指它的数据。

最佳答案

创建一个名为person 的表和一个名为car 的表以及一个名为car_person 的链接表>

  CREATE TABLE `car` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
       `name` varchar(32) DEFAULT NULL,
      PRIMARY KEY (`id`)
   ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  CREATE TABLE `person` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
       `name` varchar(32) DEFAULT NULL,
      PRIMARY KEY (`id`)
   ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


   CREATE TABLE `car_person` (
    `car_id` int(11) unsigned NOT NULL,
      `person_id` int(11) NOT NULL,
        PRIMARY KEY (`car_id`,`person_id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

此外,在您的 PHP 中创建一个 Car 类:

class Car {
  public $id;
  public $name;
 }

然后在Person类中使用汽车数组是一个汽车对象数组,而不是名称....

关于php - 在 PHP 和 MySQL 中存储和检索具有可搜索数组数据的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22026962/

相关文章:

php - mysql_real_escape_string 和单引号

mysql - 多对多表与其他一对多表的关系

mysql - 在 where 子句中使用子查询结果

php - MySQL更新功能(我不想更新空白字段,而是更新所有其他字段)

php - 用表格条目加一填充文本框?

php - mySQL 查询不返回日期

php - 没有在 XAMPP 中运行的基本 PHP 程序

symfony - 未定义索引 : inverseJoinColumns while trying to define ManyToMany relationship between two entities

php - 可重用包的 Symfony2/Doctrine2 模型类映射

node.js - 为什么我们使用 ORM 或 ODM 来管理任何 graphDB?