2011-08-03 9 views
1

私は、ログを保存するための柔軟なMySQLデータベーススキーマを探しています。ログを保存するための柔軟なMySQLデータベーススキーマ

現在、私はこの例を使用しています(例として簡略化)。

Loggin

ビガーバージョン:http://i.stack.imgur.com/b6NC9.png

私は、select * from logを行うLOG_TYPEを取得し、特定のテーブルを読み取ることができます。 log_type:tagがuserの場合、特定のテーブルはlog_userと呼ばれます。

アプリケーションのログを追加するには、log_typeと にタグアプリケーションを追加して、新しいテーブルlog_applicationを作成します。

ユーザのすべてのログを読むには、私はSELECT * FROM log_user INNER JOIN log ON log_user.logid=log.id WHERE userid=123を選択します。

これは実際には非常にうまく動作していますが、誰かがこのようなデータベーススキーマについてより良いアイデアを持っていれば、私は興味があります。

答えて

0

ログを格納するために3つのテーブルは必要ありません。同じ目標を達成するためにただ1つのフラットテーブルを使用してください。これにより、多くの不要なコーディングを省くことができます。

関連する問題