sql >> Database >  >> RDS >> Mysql

Hoe de database te structureren voor ongelezen itemwaarschuwingen per gebruiker

Tijdens het bekijken van het relevante schema voor phpBB , vond ik het volgende:

# 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`;

En:

# 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`;

Dan kijk hier in hun wiki :

Dus in wezen hebben ze een opzoektabel om de gegevens op te slaan die zijn gekoppeld aan het bekijken van een onderwerp (thread) door een gebruiker, en deze vervolgens te vergelijken met het tijdstempel in de forumweergavetabel om te bepalen of het onderwerp door de gebruiker is bekeken.



  1. Een SQL Server-cursor converteren naar MySQL-equivalent

  2. Fuzzy matching met T-SQL

  3. 4 manieren om meerdere rijen in Oracle in te voegen

  4. php mysql-functie met optionele parameter