可以在数据库表中仅标记一个条目

时间:2016-07-12 13:49:36

标签: php mysql database

我正在研究某种主题列表。它可以有多个主题,每个主题可以有多个子主题。如果您愿意,也可以为每个子主题投票,但我不认为这与该问题相关。

所以我的两个相关数据库表是topicssubtopics

以下是它们的简化版本:

CREATE TABLE topics (
    id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
    name VARCHAR(1000) NOT NULL
);

CREATE TABLE subtopics (
    id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
    title VARCHAR(1000) NOT NULL,
    topic_id INTEGER NOT NULL,
    FOREIGN KEY(topic_id)
    REFERENCES topics(id)
);

我想添加标记子主题的可能性,它是优先级的,但每个主题应始终只有一个优先副主题。

你对如何实现这一点有什么建议吗?

我的想法是向subtopics添加另一个带有时间戳的字段,当您将其标记为优先级时,该时间戳会更新为当前时间。选择条目时,您只需查找最新的时间戳。

还有其他(更好)的可能性吗?

我正在使用PHP和MySQL

2 个答案:

答案 0 :(得分:0)

您必须在子主题表中添加三个字段优先级,投票,时间戳。

优先级字段为0或1,表示1为proritized,0为not。  投票将是0或1,这意味着1是喜欢的,0是不喜欢的。  timestamp包含将子主题标记为优先级的时间。

答案 1 :(得分:0)

我想我会从上面提出自己的想法:

  

我的想法是向subtopics添加另一个带有时间戳的字段,当您将其标记为优先级时,该时间戳会更新为当前时间。选择条目时,您只需查找最新的时间戳。