これについては多くの議論があります。私はちょうどこれに関するあなたの提案を求めています。基本的に、私が使用しているのはPHPとMySQLです。日付/時刻を扱う際の複合主キーまたはサロゲート
users
------------------------------
uid(pk) | username | password
------------------------------
12 | user1 | hashedpw
------------------------------
ユーザによる更新情報を格納し、別のテーブル
updates
--------------------------------------------
uid | date | content
--------------------------------------------
12 | 2011-11-17 08:21:01 | updated profile
12 | 2011-11-17 11:42:01 | created group
--------------------------------------------
をユーザーのプロファイルページは、ユーザーの5件の最新の更新が表示されます:私は行くusers
テーブルを持っています。質問は次のとおりです。
updates
テーブルの場合は、UIDからの参照UIDとの複合主キーとしてUIDと日付の両方を設定することが可能であろうusers
- または、に別の列を作成する方がよいでしょうかは自動的にインクリメントされ、プライマリキーとして使用されます(uidはFKからuidへ
users
)。 (1アンダー)
あなたは絶対に正しいです。私はあまりにも "人間的に"考えていたと思う。しかし、テーブルを設定する良い方法は何ですか?助言がありますか? –
'logid/uid/ts/eventtype/details'ここで、' logid'はPKオートインクリメント、 'ts'はタイムスタンプ列、' eventtype'は自由形式ですが短い(varchar 16文字)、 'details'は自由形式で長すぎない(varchar 1024)。タイプ+詳細のイベントを分割すると、「すべてのログイン」、「すべての新しいグループ」などを簡単にフィルタリングできます。 – mvds
Gotcha。助けてくれてありがとう。 –