간단하지만 유연한 컨텐츠 관리자를 개발하고 있으며 페이지 관리를 위해 레이아웃을 구성 할 기회를주고 싶습니다. 페이지에서 내용을 드래그하여 두 개 또는 세 개로 나눈 내용 행을 테이블처럼 만들 수 있습니다.PHP/MYSQL - CMS의 페이지 레이아웃 및 내용에 대한 데이터를 저장하는 가장 좋은 방법
다음 이미지는 내가 생각하고있는 것을 설명 할 수 있습니다 : 사용자가 레이아웃이 왼쪽에있는 정적 이미지, 오른쪽에 텍스트를 가질 수
, 그리고 하단에 축소판을 보여주는 이미지 갤러리를 배치 할 수 있습니다.
이제 내 질문에 ... 저장하고 MySQL의에서 데이터를로드하는 방법에 대해
이다 나는 두 가지 옵션이 있습니다
레이아웃에 대한 직렬화 된 데이터와1) :
page's 테이블에서이 레이아웃에 대한 직렬화 된 데이터를 저장할 필드를 가질 수 있습니다. 그런 다음이 배열을 사용하여 내용을 어셈블 링하고 루프를 만들어야합니다.
배열은 그렇게 될 것이다 : DB에 저장하는
// Rows/divisions ...
$array[0]['q'] = 2;
$array[1]['q'] = 1;
// The content
$array[0]['c'][0]['t'] = 3; // 't' = type (3 = image)
$array[0]['c'][0]['i'] = 124; // 'i' = id to search for this data
$array[0]['c'][1]['t'] = 1; // 't' = type (1 = text)
$array[0]['c'][1]['i'] = 2; // Referencia ao ID do conteudo
$array[1]['c'][0]['t'] = 4; // 't' = type (4 = image gallery)
$array[1]['c'][0]['i'] = 9; // Referencia ao ID do conteudo
및 직렬화 된 데이터 :
a:2:{i:0;a:2:{s:1:"q";i:2;s:1:"c";a:2:{i:0;a:2:{s:1:"t";i:3;s:1:"i";i:124;}i:1;a:2:{s:1:"t";i:1;s:1:"i";i:2;}}}i:1;a:2:{s:1:"q";i:1;s:1:"c";a:1:{i:0;a:2:{s:1:"t";i:4;s:1:"i";i:9;}}}}
아니면 다른 옵션이 있습니다
2) 모든 데이터베이스에 :
여기서 나는 모두를 저장할 테이블을 만들 수 있습니다. 행/구분을 포함하여 페이지의 "구성 요소"링크는 콘텐츠를 조합하기위한 쿼리를 만들 수 있습니다.
표는 그런 일이 될 것입니다 :
id -> component id
id_page -> page´s id
type -> component type, and 0 == row
value -> id reference to content or quantity of divisions for the rows
그리고 데이터가 그런 식으로 저장됩니다 :
id/id_page/type/value
1/1/0/2 --> the first row divided in two
2/1/3/124 --> the image
3/1/1/2 --> the text
4/1/4/9 --> the image gallery
그래서, 어떤 옵션 너희들이 더 나은 성능을 위해 사용하는 것이 마십시오 더 나은 관리? 이게 내가 원하는 걸 만들 수있는 가장 좋은 방법인가?
내가 어떤 점에서 분명하지 않은 경우 죄송합니다.
정말 고마워요!