facebook
ユーザーがまたはを介して登録できるようにするアプリケーションに取り組んでおり、twitter
これらの Web サイトからユーザーの個人データを使用できるようにしたいと考えています。これが私がこれまでに思いついたものです:
このuser
テーブルには、ユーザーの登録方法に関係なく存在する必要がある情報 ( first_name
.
user_property
テーブルはキャッシュとして機能し、または(フィールドで表される)key-value
に固有の情報を格納します。users' など、呼び出しまたはクエリの一部として個別に使用できるプロパティを保存し、 users'などの形式でシリアル化された他の呼び出しの結果を保存します。facebook
twitter
origin
API
SQL
facebook id
API
JSON
facebook friends
その方法:
- 私はテーブルに共通の情報を持ってい
user
ます.1つのテーブルSELECT
で、ユーザーに関する基本的な有用な情報を得ることができます. - と.
facebook/twitter
_JOIN
_user
_user_property
- 正規化して保存するにはコストがかかりすぎる情報を取得できます (たとえば、人々の友人を保存するテーブルを作成し、友人ごとに 1 つのテーブル エントリを持つ)
JOIN
と.user
user_property
で、今気になっているのが以下。
Q1: これはある程度持続可能なデータベース設計でしょうか?それとも、間違っていて何らかの問題が発生する可能性がありますか?
Q2: 頻繁に変更される情報 (友達/フォロワーのリストなど) を保存する場合、情報を最新の状態に保つにはどうすればよいですか? (そもそも DB に情報を保存しますか? もしそうなら、どのような基準/トリガーを使用しますか?いつ情報を再度取得するかを決定するために使用しますか)?