1

「コメント」「product_added」などいろいろなタイプの通知システムがあり、ユーザーも多いです。

ユーザーの友達に基づいて、ユーザーまたはその友達が実行したアクションの通知が表示されます。問題は、どの友人が通知を読んだかどうかの記録を保持する必要があるということです。私はすでに、次の情報を保存したテーブルを持っています。

notification_id,    
type_id ,   
item_id ,   
user_id ,   
owner_user_id , 
is_seen,
time_stamp, 
title_html, 
title_text, 
body_html,
body_text,  
href,
icon_url

配列を使用して、通知を見たすべての友達IDを格納する必要がありますか、それとも、その通知を見た各友達のレコードを保持するis_seenという名前の新しいテーブルを作成する必要がありますか?notification_seen

すべての通知は最大30日間続きます。また、ユーザーに200人を超える友達がいる場合は、200個のIDを配列に格納し、それを取得して配列を壊して表示することにも注意する必要があります(私によると長い手順です) )。

では、どちらがより良い方法であるか、私が気付いていないより良い方法であるかを誰かが提案できますか?

4

1 に答える 1

5

別のテーブルを使用してください。リレーショナルデータベースの配列は、ユーザー定義関数またはクエリの複雑な式がないと、データベース操作とクエリを単一の配列要素に適用できないため、常に悪い考えです。また、正規化パラダイムに準拠していません。

于 2012-08-13T09:20:31.143 に答える