我有一个包含USERS的表和另一个包含RSS FEED URL的表。两者都是InnoDB类型。
每个用户可以订阅任意数量的Feed。
我正在努力找出记录用户订阅的Feed的最佳方式。
一种方法是在users表中有一个feed_ids varchar列,并将每个列分开。有更好的方法还是可以的?
USERS TABLE
+---+----------+
|id | feed_ids |
+---+----------+
|1 | 1,2,3 |
+---+----------+
|2 | 2,3 |
+---+----------+
|3 | 1,2 |
+---+----------+
答案 0 :(得分:3)
最好在表格中为每个关系创建一个新条目。 所以:
USERS-FEEDS TABLE
+---+----------+---------+
|id | user_id |feed_id |
+---+----------+---------+
|1 | 1 |1 |
+---+----------+---------+
|2 | 1 |2 |
+---+----------+---------+
|3 | 1 |3 |
+---+----------+---------+
|4 | 2 |2 |
+---+----------+---------+
|5 | 2 |3 |
+---+----------+---------+
|6 | 3 |1 |
+---+----------+---------+
|7 | 3 |2 |
+---+----------+---------+
您还可以定义此表与用户和供稿表之间的关系,以确保完整性(即,用户列只能包含用户表中ID的值,并且将被更新,删除或设置如果在更新或删除用户行时允许,则为null。