0

我正在尝试创建一个单独的表来跟踪已读/未读帖子。使用MySQLi我将有两个表itemsitems_tracking. 呈现页面时,它将加入表格并检查用户是否阅读了帖子。

items
+-------+------------+----+
|  id   | created_by | .. |
+-------+------------+----+
| item1 | id12       | .. |
| item2 | id433      | .. |
+-------+------------+----+

items_tracking
+---------+---------+------+
| user_id | item_id | read |
+---------+---------+------+
| id1     | item1   |    0 |
| id2     | item2   |    0 |
| id94    | item1   |    1 |
+---------+---------+------+

现在的想法是,每当在items表中创建新项目/帖子时,它还将在items_tracking表中为所有用户和列创建行read = 0。问题是,我不知道如何解决这个问题,因为我将使用的外键items_tracking仍然几乎未确定。

关于如何同时插入两个表,而第二个表引用第一个表的任何想法?

4

1 回答 1

1

您不需要跟踪表中 read=0 的记录。

SELECT ..., t.read FROM items i LEFT JOIN items_tracking t ON (t.item_id = i.id)

即使 ; 中没有对应的记录,这个查询也会起作用items_tracking。在这种情况下,结果中的 t.read 将为NULL. 你只需要插入记录read = 1,虽然你甚至不需要这个标志,你测试t.item_id IS NOT NULL看看你是否有记录items_tracking

于 2012-05-26T18:54:53.390 回答