私のサイトでは、ユーザーがいくつかのアイテムを作成でき、それらのアイテムがItems
テーブルに表示されます。
ユーザーは相互にフォローすることもでき、それらのデータをFollowings
テーブルに保存することもできます。
ここで、ユーザー アクティビティを追跡するテーブルが 1 つ必要になるため、次のテーブルを作成しました。
Users{UserId, Username, FirstName, LastName}
Items{ItemId, Title, CreatedByUserId}
Activity{ActivityId, ActivityTypeId, UserId, ItemId}
ここでは、テーブルから、またはテーブルからItemId
できます。
この設計は良いですか、それともこれを行うためのより良いアプローチがありますか?ItemId
Items
UserId
Users
編集:テーブル構造を追加しました。ポイントは、ユーザーがアイテムを作成したり、ユーザーのフォローを開始したりするたびに、その Activity テーブルにレコードを追加したくないということです。そのため、ユーザーがサイトで何をしたかを常に追跡できます。