1

現時点では、ID、名前、電子メール、性別、パスワード、アバターのフィールドで構成されるユーザー テーブルがあります。

これらのユーザーは、アイテムを持ち、場所に行き、友達を持ち、何らかのアクションを実行します。彼らの活動に関する統計があります。

これらのアクション (および対応する統計) の参照を保存し、アクション自体を他のテーブルに保存する必要がありますか?それとも、このテーブルにフィールドを追加するだけですか?

たとえば、チェックイン、フォロー、友達 - これらは別のテーブルにある必要がありますか?

イベントはどうですか?

誰かが別の人と友達です。誰かが別の人をフォローします。誰かが何かのステータスを持っています。

これらは、タイムスタンプとそれに関連する対応するアクション (誰かがこの投稿、コメントなどを気に入った) と共にテーブルに保存する必要があります。

4

1 に答える 1

0

ここでいくつか読んで質問した後、私は次のように結論付けました。

オブジェクトの各タイプの表: ユーザー アイテム 場所

各オブジェクトの追加データのテーブル: ユーザー情報、アクション アイテム情報 場所情報

アクションまたはイベントの好みのタイプごとの表

イベント用のテーブル

event_id, event_type, parameter1, parameter 2, parameter 3, parameter 4* (*以下の注を確認してください) *

event_id、person_id などのイベントのテーブル

イベント コメントのテーブル event_id、person_id、comment_text

ユーザーのメールボックスに 13 件のメッセージがあり、そのうち 8 件が既読の場合、メッセージ テーブルではブール値の「既読」になります。

これは今のところ大丈夫ですか?

統計が必要な場合は、それらをレコードに保存しません。たとえば、次のようなクエリの結果の数を数えます。

ユーザー Kylie には 14 人のフォロワーがいます。これは、このユーザーのテーブルをクエリした後に返される行数です。

注:私を悩ませているのはイベントテーブルだけです。これは、さまざまなタイプのイベントにはさまざまなパラメーターが必要だからです。

イベント タイプのフレンドシップには、2 人のユーザーの ID が必要です。イベント タイプの購入には、ユーザーと製品 ID が必要です。

すべてのイベントを 1 つのテーブルに格納しても問題ないですか、それともイベントの種類ごとに複数のテーブルを作成する必要がありますか?

PS: umlet を使用して、テーブルを実装する前に、デザインとテーブル間の関係をレイアウトします。

于 2013-10-23T09:57:51.230 に答える