5

私はシンプルで柔軟なコンテンツマネージャーを開発しています.ページ管理のために、ユーザーがページ内のコンテンツをドラッグしてレイアウトを整理し、コンテンツの行を2つまたは3つに分割できるようにしたいと考えています.テーブルのように。

次の画像は、私が考えていることを示しています。

ここに画像の説明を入力

ユーザーは、左側に静止画像、右側にテキストを配置するレイアウトを作成でき、下部にサムネイルを表示する画像ギャラリーを配置できます。

さて、私の質問は、Mysql にデータを保存してロードする方法についてです...

2 つのオプションがあります。

1) レイアウトのシリアル化されたデータ:

ページのテーブルには、このレイアウトのシリアル化されたデータを格納するフィールドを含めることができます。次に、シリアル化を解除して、この配列でループを作成し、コンテンツを組み立てるだけです。

配列は次のようになります。

// 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

DB に保存するシリアル化されたデータ:

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

では、パフォーマンスや管理を向上させるために、どのオプションを使用しますか? これは私が望むものを作るための最良の方法ですか?

申し訳ありませんが、私はある時点ではっきりしていませんでした。

どうもありがとう!

4

1 に答える 1