I have object which store in database, it's a some text with properties. That text has rating. I need to store this rating, and prevent to one user raise this raiting more than one time. If I store "text id" and "user id" in other table and count all records which have needing "text id" i have too much records in table.
質問する
3093 次
3 に答える
4
次の 2 つの方法があります。
多対多の関係を使用できます。つまり、「user_likes」のような名前の別のテーブルを使用すると
user_id
、like_id
列があり、両方が主キーになります(ユーザーが like_object を一度だけ好きになることができます)別の方法 - トラフィックの多い Web サイトが使用する方法: ユーザー テーブル内のすべてのユーザー レコードには列があります。これは単にシリアル化された配列または json などです。
like_object_id
この列を更新する前に、アプリケーションはこのデータを取得し、存在しない場合は特定のものを探します- データベースを更新します。この場合、アプリケーションのデータの一貫性に関するすべての注意事項 (たとえば、like_object_id が一部のユーザー レコードに存在するが、like_object テーブルには存在しない) は、データベースではなくアプリケーション コードに実装する必要があることに注意してください。
PS私の英語で申し訳ありませんが、できる限り説明しようとしました。
于 2013-01-08T02:09:58.447 に答える