写真管理システムを XML から MySQL に移行し、現在のシステムの機能を拡張したいと考えています。
基本的に、MySQL と xml ファイルにはほとんどありません。現在の状況は次のようになります。
" news.xml " - 単一のファイル:
サイト上のすべてのニュース (新しいアップロード、投票、コメント) が保存されており、xml の構造は次のとおりです。<all_news> <photos> <image image_name="photo1.jpg" path="my_photos/" date="12.12.12" info="just Uploaded!" /> </photos> <comments> <image image_name="photo1.jpg" path="my_photos/" date="12.12.12" info="just Commented!" /> </comments> <votes> <image image_name="photo1.jpg" path="my_photos/" date="12.12.12" info="just Voted!" /> </votes> </all_news>
" photo1.xml "、" photo2.xml "、" photo3.xml " ... - 複数のファイル:
これらのファイルは、誰かが私の写真にコメントを残すと動的に作成されます。たとえば、誰かが私の写真にコメントすると、php スクリプトは自動的に「photo_name.xml」ファイルを次の形式で作成します。<comments> <comment sender='John' text='nice photo!' who='user' date='22.12.12'/> </comments>
"投票" - MySQL テーブル:
すべての投票が保存され、テーブルの構造:id: "photo1.jpg"
vote: 5
uid: "IP voting person"
これらすべてを単一の mySQL データベース テーブルにマージしたいので、写真がロードされるたびに、単一の DB テーブルからこれらの写真情報を取得します (いくつかの xml と DB を同時にロードするのではなく)...
だから私の質問は次のとおりです。
この状況で最も簡単に作業するには、どのテーブル構造が最適ですか (データのプル、移動、削除、編集、追加、並べ替え...)? 一意の id = "photo.jpg"と多次元配列
を使用して、単一のファイルのすべてのものを単一の行に保持する必要がありますか? 例えば:
uid: photo_name.jpg
path: my_photos/
isNewPhoto: array[true, array[info:"just uploaded!"][date:"12.12.12"]] (multi-dimensional array ??)
isNewComment: array[true, array[info:"just commented!"][date:"12.12.12"]] (multi-dimensional array ??)
isNewVote: array[true, array[info:"just Voted!"][date:"12.12.12"]] (multi-dimensional array ??)
votes: 1,5,3,2
votesIP: 123123123,123123123,123123123
comments: array[array[sender][comment][date][who]]] (multi-dimensional array ??)