CMS:データベースモデルを計画する

読了時間:4分
注意:
この記事を読む前に、データベースコレクションについてをお読みください。
この記事では、データベースコレクションを追加する前に考慮すべき点について説明します。

最も重要なことは、情報を複製することは一般的に良い考えではないということです。時間とスペースを浪費するだけでなく、情報のエラーや矛盾の可能性も高まります。データの複製を避ける最善の方法は、情報を主題と権限レベルに基づいて異なるコレクションに分割することです。
重要:
コレクションの権限がサイトのセキュリティにどのように影響するかについては、こちらの概要をご覧ください。

データの目的を考慮する

データベースコレクションを作成する前に、まずその目的を明確にし、それに沿った形でデータベースコレクションの計画を立てましょう。
  1. まず、サイトの目的を明確にすることから始めます。どのような情報を保存するのか、またはユーザー入力を収集するのかなどを確認します。たとえば、「お気に入りのレシピを紹介するサイトで、訪問者が登録して有料会員になることもできる」といった形です。
  2. 保存するデータの種類と、それらがどのように組み合わされるかについて考えます。訪問者にどのようにデータを表示する予定ですか?動的ページを作成しますか?各コレクションはどのように相互機能しますか?
  3. 各コレクションの情報を使用できるユーザーを決定し、それぞれのユーザーに適切な権限を与えます。訪問者はコレクション内の情報を閲覧するだけですか?それとも、訪問者が情報を追加・変更できる機能を提供しますか?

以上でコレクションを作成する準備が整いました。

コレクションとフィールドに名前を付ける

よく考慮した上で、コレクションとフィールドの名前を付けましょう。要素を接続する(または、Velo by Wix を使う場合はそのためのコードを記述する)際は、名前を明確にしておくことが重要です。コレクション名とフィールド名は、要素をデータに接続するときにエディタに表示されるため、一目でわかる名前にしましょう。

作成したコレクションの名前は後から変更できません。
Velo by Wix ユーザー:フィールド名は変更できますが、フィールド ID の名前は変更できません。フィールド ID はコードを書くときに使用するものなので、簡単に識別できる名前にしてください。

データに固有の識別子があることを確認する

コレクション内でデータの動的アイテムページを作成する場合は、各アイテムを一意に識別する値を持つフィールドが 1つ以上必要です。この値をもとに、各ページに固有のURLが設定されます。

たとえば、コレクション内の各レシピに関する情報を紹介する動的アイテムページを作成するとします。レシピコレクションにチョコレートケーキのレシピが数種類あり、それらをすべて「チョコレートケーキ」と呼ぶ場合、それらの動的ページはすべて同じURLを持ちます(例:mysite/recipes/chocolate-cake)。これだと、動的ページに表示されるチョコレートケーキのレシピを制御することはできません。詳細はこちら

特定のコレクションに紐付く参照フィールドを作成しようとする場合も同じことが言えます。この場合も、コレクション内のメインフィールドの値を一意に設定して、参照フィールドで正しいアイテムを選択できるようにする必要があります。

スプレッドシートで作業してデータをインポートする

Excel などのスプレッドシートアプリケーションにデータがすでに存在する場合、それらを簡単に CSV ファイルに保存してから、コレクションにインポートすることができます。同様に、データを大幅に変更する場合も、データを CSV ファイルにエクスポートし、スプレッドシートアプリケーションで編集してから、コレクションにインポートしてデータを反映させることができます。

並び替え用の専用フィールドを追加する

特定の順番でアイテムを表示したいが、並び替えに使えるフィールドがない場合は、それ専用の番号フィールドを追加することができます。たとえば、レシピをアルファベット順以外の特定の順番で整理したい場合は番号カラムが役立ちます。

参照フィールド

参照フィールドは、コレクション内での定義に従って、コレクション間の接続を作成します。各参照フィールドは特定のコレクションに関連付けられ、そのコレクションから取得される値を表示します。

参照フィールドの利点は 3つあります。まず、参照されるコレクションから直接値が取得されるため、データの整合性を維持するのに役立ちます。次に、データの重複をなくします。3つ目の利点は、動的に情報を表示する場合、参照フィールドを使用すると、参照先コレクションとメインコレクション内の情報にアクセスできることです。この特性を利用して、マスター / 詳細ページを作成できます。

ユーザー入力の保存に関する考慮事項

ユーザー入力フォームを作成する場合は、ユーザーが入力した情報を保存するためのコレクションが必要です。各フォームを接続する専用のコレクションを 1 つ作成し、それぞれのユーザー入力要素をそのコレクション内のフィールドに接続する方法が最も一般的です。

まずはユーザーから収集したい情報の種類を考慮し、それに応じてフォームとデータベースコレクションを設計します。ドロップダウンリストを配置したい場合は、リスト内の値を保存する場所を用意しましょう。ニュースレターに新規登録するかどうかのオプションを選択してもらいたい場合は、チェックボックスに接続するブーリアン型のフィールドが必要です。

また、ユーザー入力を保存するコレクションに適切な権限を設定して、ユーザーが情報を保存できるようにします。





お役に立ちましたか?

|