開発中のソーシャルネットワークでオブジェクトをマッピングするのが苦労しています。私はオブジェクトリストをマップし、私は122の主要なオブジェクトを持っています。私は今のところ退去しているシステムオブジェクトの別のリストがあります。オブジェクトは、写真、ビデオ、写真タグ、ビデオタグ、メール添付ファイル、メールなどです。ソーシャルネットワークのオブジェクトテーブルスキーマ
各オブジェクトには、作成日、所有者ID、プライバシーレベル、検索レベルなどの詳細を含むメタデータがあります。テキスト項目には単語数、それが属するカテゴリ、他の人によるコメントなどがあります。
私の理解から、人々は各オブジェクトに独自のテーブルを与えます。だから写真には自分のテーブルがあり、ビデオにはそれ自体があります。しかし、これは私のオブジェクトに122の異なるテーブルがあることを意味します。私がそれらをすべて1つのテーブルに結合すれば、ソーシャルネットワークで人々が常にオブジェクトとやりとりしていることを知っているので、テーブルスキャンが問題になり、テーブルが長く成長します。
オブジェクトの詳細を2つのカテゴリに分割しました。写真のようなオブジェクト固有のフィールドには、説明、サイズ、パスなどの列があります。次に、すべてのオブジェクトが上記のように持つ共通フィールドのリスト(著作権侵害レベル、検索レベルなど)があります。これらの列の中には、ユーザーが必要とするプライバシーのようなユーザー向けのものがあります。曜日、日、年中などのシステムバックエンド報告目的のものもあります。
これをモデル化すると、最適なアプローチが得られます。システムレポーティング/分析のための
オブジェクトの詳細日付、オブジェクト型に固有のプライバシーなど
オブジェクトの詳細を作成するなどのすべてのオブジェクトによってhared
オブジェクトの詳細:要約すると3つの層があります。
もちろん、より複雑なクエリを持つテーブルは、オブジェクト間でレポートを取得する必要がある場合はespになります。先頭には、オブジェクトの親と子のリストを持つオブジェクト参照テーブルがあります。そこから他のすべてのオブジェクトテーブルが流出します。理由は私はニュースフィード、通知などのためのデフォルトのテキストのリストを維持する必要があるので、私はオブジェクトルックアップテーブル自体のすべてをマッピングすることを計画しています。
「私はそれらをすべて1つのテーブルにまとめれば...」 - そうしないでください! –
次に、私はユーザーオブジェクトのためだけに122テーブルが必要ですか? – daniel