我有12个位置,我想弄清楚我是否应该创建12个表(每个社区1个)保存到1个表,将位置添加为列,然后将所有内容放入其中并获取我需要的数据基于位置行?
CREATE TABLE `location1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`newsTitle` varchar(50) NOT NULL,
`introParagraph` varchar(500) NOT NULL,
`newsLink` varchar(100) NOT NULL,
`downloadLink` varchar(100) NOT NULL,
`file` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;
答案 0 :(得分:0)
您可以根据需要使用单个表格。 当您需要保存不同位置的数据时,您可以使用php serialize()和unserialize()来克服这种情况。当您获得数据时,您可以在反序列化后执行任何操作。您可以将该字段用作文本。
CREATE TABLE `location` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`location` varchar(50) NOT NULL,
`location_data` text(32565) NOT NULL
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;
以下是如何在表格中保存数据
$location = 'Location A';
$location_data = array('langitude' => 32.123 , 'longitude' => 87.3123 , 'status' => 'active');
$serialized = serialize($location_data);
$query = "INSERT INTO location (location , location_data) VALUES ('$location','$serialized')";
mysqli_query($query);
$location = 'Location B';
$location_data = array('test1' => 123 , 'test2' => 321);
$serialized = serialize($location_data);
$query = "INSERT INTO location (location , location_data) VALUES ('$location','$serialized')";
mysqli_query($query);
当你得到结果时
$query= "SELECT * FROM location WHERE id=1";
$rs = mysqli_query($query);
$row = mysqli_fetch_assoc($rs);
$location_data = unserialize($row['location_data']);
答案 1 :(得分:0)
1表。如果唯一的区别是该行属于哪个社区,那么肯定是1个表。如果存在其他差异,那么取决于迈克所说的用途。