요구 사항에 따라 하나의 테이블을 사용할 수 있습니다. 다른 위치에 대한 데이터를 저장할 필요가있을 때 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']);
아마도 사용 사례에 따라 달라질 수 있습니다. 각 커뮤니티마다 항상 정확한 데이터 열이 필요하다고 생각하십니까? –
디자인에 따라 참조 용으로 http://stackoverflow.com/questions/9774715/mysql-multiple-tables-or-one-table-many-columns를 사용할 수 있습니다. –
@MikeBrant 테이블은 뉴스 레터의 데이터를 보유 할 것이며 매월 동일한 유형의 데이터가됩니다. – Bonyboy