sql >> Databasteknik >  >> RDS >> Mysql

Hur man strukturerar databasen för olästa objektvarningar per användare

När du granskar relevanta schemat för phpBB , jag hittade följande:

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

Och:

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

Sedan kikar jag här i deras wiki :

Så i huvudsak har de en uppslagstabell för att lagra data som är associerade med en användares visning av ett ämne (tråd), och sedan kontrollera det mot tidsstämpeln i forumvytabellen, för att avgöra om ämnet har setts av användaren.



  1. Välja ett SQL Server-övervakningsverktyg som passar dina behov

  2. Kör SQL-skript för att skapa tabeller och rader

  3. Hur felsöker man Lås vänta timeout överskriden på MySQL?

  4. Fråga föräldrar och barn i självrefererande tabell