根据下拉选项选择要保存的表

时间:2014-06-10 06:19:18

标签: php mysql

我有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 ;

2 个答案:

答案 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个表。如果存在其他差异,那么取决于迈克所说的用途。