1

基本的に、フィールドを持つオブジェクトがたくさんあります。

このオブジェクト インスタンスの文字列識別子id : "banana"
文字列のキーと値のディクショナリdata : {}
これに関連するインスタンスの ID の friends: ["apple", "orange" ]
配列 関連する (別の方法で) インスタンス ID の配列 followers: ["grapefuit"]

このデータが Twitter ネットワークをモデル化すると推測したかもしれません。
データの存続期間中 (特定のプログラム実行の存続期間を超えて延長されます)、インスタンスの数とフィールドに格納されたデータが変化する (予想されるように増加する) ため、このすべてのデータを MySQL に格納したいと考えています。データベースは、PHP スクリプトによってインターフェースされます。

私はデータベースの世界ではまったくの新人ですが、テーブル モデルとクエリ構造についてはある程度理解しています。
この特定の問題に対してデータベースをどのように構築すればよいでしょうか?

4

1 に答える 1

1

MySQL のようなデータベースを操作する際に覚えておくべきことの 1 つは、特定の列に dict や配列などを含めないようにする必要があるということです。その理由は、これらの値に対するクエリが恐ろしくなってしまうからです。

たとえば、FriendA と FriendB の 2 つの列を持つ「Friends」スキーマを作成します。あなたが持っているすべての友達のペアについて、これはこのデータベースの行になります。「フォロワー」でも同じことができ、フォロワーとフォロワーの列があります。

これらのテーブル全体でクエリを実行するには結合が必要です。さらに重要なことは、2 人の友達が友達から外れた場合や、誰かが別の人のフォローをやめることにした場合、これは 2 つではなく 1 つの削除で済みます (配列はありません!)。

もちろん、構造化されていないキー/値データを使用する予定がない限り、それを完全なスキーマに拡張してください。

于 2013-09-05T07:07:09.720 に答える