php - 在数据库表中只标记一个条目的可能性

标签 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

最佳答案

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

优先级字段将为 0 或 1,这意味着 1 被优先化而 0 不被优先化。 vote 将是 0 或 1,这意味着 1 被喜欢,0 不被喜欢。 时间戳包含您将子主题标记为优先的时间。

关于php - 在数据库表中只标记一个条目的可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38330822/

相关文章:

sql - 我怎样才能批量更新这个?

php - Errno=9 错误的文件描述符在 php 中

php - 如何在redbeanphp中向现有的onetomany关系添加子项?

php - 在PHP中异步处理多个GET请求

php - 简单的评论框 php 和 mysql 不起作用

mysql - 网站的两个用户之间的对话类型收件箱消息

php 数组 - 检测修改的行并编辑

mysql - 是什么导致了错误 "Column does not match the value count at row 1"?

php - 填有mysql数据的pdf表格

mysql - 如何使用mysql中的给定条件查询架构中所有表中的相同列?