私はそれらを検索し、ユーザー彼に関連する最後のN個のアクションを表示し、すべてのアクションを表示するために、専用のページに移動できるようにする必要があり忙しいのウェブサイトに「アクティビティログ」を追加しているなど大量のロギングデータを格納するための優れたDBスキーマは何ですか?使用
DB MySQLは、私はログを格納する方法が不思議です - 私はFULLTEXTの検索に使用される単一のMyisamテーブルを開始し、すべてのアクションで余分な選択クエリを避けるために:1)そのテーブルへの挿入が起こる2)APCそれぞれのキャッシュが更新されるため、次のページリクエストではmysqlは使用されません。キャッシュにはログの有効期間があり、見つからない場合は最初のAJAXリクエストが作成されます。
ユーザーごとに3つの最後のイベントがキャッシュされているので、新しいイベントが発生すると、現在のキャッシュを取得し、新しいイベントを先頭に追加して最も古いイベントを削除します。 。サイトのすべてのページに小さなボックスが表示されます。
これは適切な設定ですか?この種の機能を実装することをどのようにお勧めしますか?
私が持っているスキーマは次のとおりです。
CREATE DATABASE `audit`;
CREATE TABLE `event` (
`eventid` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`userid` INT UNSIGNED NOT NULL ,
`createdat` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`message` VARCHAR(255) NOT NULL ,
`comment` TEXT NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER DATABASE `audit` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `audit`.`event` ADD FULLTEXT `search` (
`message` (255) ,
`comment` (255)
);
あなたは私達にあなたの既存の設計のためのスキーマを表示することができますか? –
@Neville K、done – Fluffy