2017-02-13 2 views
0

私はフォーラムも含むウェブサイトを構築しています。ビルドに欠けている部分は、「ポストビューカウンター」ですが、どうすればいいのか分かりません。データベース内で最大限のスペースを占めるもの

私は私が私の頭の中で使用して考えていたが、何が最善と方法1 database

の各オプションを使用して、スペースに差が存在することになるだろう2通りました:

PostId | UserId's (separated by, and max 200 users per row) 
----------------------------------- 
    1 | 1, 2, 4, 5, 9, 10, 220 
    2 | 1, 2, 4, 5, 9, 10, 220 

方法2:

PostId | UserId 
----------------------------------- 
    1 | 1 
    1 | 2 
    1 | 4 
    1 | 5 
    1 | 9 
    1 | 10 
    1 | 220 

は、これらの2つの方法は、データベース内の同じ大きさを取りますか?またはWHOについてのデータを保存する方が良いと思われるオプションがあれば、どの投稿を閲覧したでしょうか?

+0

方法1は、正規化する必要があるデータベースです。詳細はこちら:https://en.wikipedia.org/wiki/Database_normalization 方法2は良い方法ですが、方法1は悪い方法です。 – adistoe

+0

方法2は方法1よりも多くの意味を持ちます –

+0

挿入、更新、検索、並べ替え、参照整合性の実施、マルチユーザー環境の処理などの機能を使用する場合は、リレーショナルデータベースを使用します。rawバイトは一種の無駄です。 –

答えて

1

方法2を使用すると、その場合には、私はpostIdとそのテーブルの主キーとしてuserIdを使用することをお勧めし、各ユーザのためのステータスを「読み」を維持したい特別な場合は、優れているので、あなたは、単一のpostIdを開催しますuserId行。 プライマリキーはテーブルにインデックスを配置します。したがって、ユーザーがすでにその投稿を読んでいるかどうかを確認するためにSELECTを実行する場合は、非常に迅速になります。

投稿の閲覧回数をカウントすることはできません。そのためには、投稿自体にviewCountフィールドを置き、投稿のすべてのビューがこの値をインクリメントしますユーザーは既にそれを過去に見た。

関連する問題