sql >> Databáze >  >> RDS >> Mysql

Jak strukturovat databázi pro upozornění na nepřečtené položky na uživatele

Při kontrole příslušné schéma pro phpBB , našel jsem následující:

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

A:

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

Pak se podívám sem na jejich wiki :

V zásadě tedy mají vyhledávací tabulku pro ukládání dat spojených s prohlížením tématu uživatelem (vlákna) a poté je porovnává s časovým razítkem v tabulce zobrazení fóra, aby se zjistilo, zda si dané téma uživatel prohlížel.



  1. Unicode (hexadecimální) znakové literály v MySQL

  2. MariaDB CURRENT_TIME() Vysvětleno

  3. MySQL uděluje uživateli oprávnění k databázi

  4. Efektivní spojování přes intervaly v SQL