sql >> データベース >  >> RDS >> Mysql

ユーザーごとの未読アイテムアラートのデータベースを構築する方法

    phpBBに関連するスキーマ 、私は次を見つけました:

    # Table: 'phpbb_topics_track'
    CREATE TABLE phpbb_topics_track (
        user_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
        topic_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
        forum_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
        mark_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
        PRIMARY KEY (user_id, topic_id),
        KEY topic_id (topic_id),
        KEY forum_id (forum_id)
    ) CHARACTER SET `utf8` COLLATE `utf8_bin`;
    

    そして:

    # Table: 'phpbb_forums_track'
    CREATE TABLE phpbb_forums_track (
        user_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
        forum_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
        mark_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
        PRIMARY KEY (user_id, forum_id)
    ) CHARACTER SET `utf8` COLLATE `utf8_bin`;
    

    次に、こちらのwikiをご覧ください

    つまり、基本的に、ユーザーによるトピック(スレッド)の表示に関連するデータを格納するルックアップテーブルがあり、フォーラムビューテーブルのタイムスタンプと照合して、トピックがユーザーによって表示されたかどうかを判断します。



    1. Pivotを使用したMySQLバージョン8.0.17のさまざまなテーブルおよびさまざまな行番号(ユニオン)からの行から列への変換

    2. 一意のキーケースで大文字と小文字を区別しない

    3. MySQLで数値以外の文字が削除されたフィールドを返すSQL

    4. MySQLフルテキスト特殊文字の処理