想象一下你有一个类
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/