2014-06-10 5 views
0

12 개의 테이블 (각 커뮤니티에 1 개)을 만들어 저장해야하거나 테이블을 1 개 저장해야하는지 파악할 수있는 12 개의 위치가 있습니다. 열을 가져오고 그 안에있는 모든 것을 던져서 위치 행을 기반으로 필요한 데이터를 가져옵니다.드롭 다운 선택에 따라 저장할 테이블 선택

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 ; 
+1

아마도 사용 사례에 따라 달라질 수 있습니다. 각 커뮤니티마다 항상 정확한 데이터 열이 필요하다고 생각하십니까? –

+0

디자인에 따라 참조 용으로 http://stackoverflow.com/questions/9774715/mysql-multiple-tables-or-one-table-many-columns를 사용할 수 있습니다. –

+0

@MikeBrant 테이블은 뉴스 레터의 데이터를 보유 할 것이며 매월 동일한 유형의 데이터가됩니다. – Bonyboy

답변

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']); 
+0

도움을 주셔서 대단히 감사드립니다! – Bonyboy

0

1 표를 초래할 수있는 방법입니다. 유일한 차이점이 행이 속한 커뮤니티라면, 분명히 1 개의 테이블입니다. 다른 차이점이 있다면 마이크가 말한대로 사용에 달려있다.

관련 문제