我想知道我是否允许我的用户选择他们的帖子将显示哪些类别,他们可以从一个到多个选择多个类别。
答案 0 :(得分:0)
您描述的结构实际上是 many-to-many relationship (用于所有标记结构等)。
Entries Table
+----+-------+------+
| id | title | text |
+----+-------+------+
Entries-to-Tags Table
+----------+--------+
| entry_id | tag_id |
+----------+--------+
Tags Table
+----+-----+
| id | tag |
+----+-----+
检查标记中所有条目的典型SQL调用是
SELECT *
FROM tags_table as tg
LEFT JOIN entries_to_tags AS entg ON tg.id = entg.tag_id
LEFT JOIN entries AS en ON entg.entry_id = en.id
WHERE tg.tag = 'my tag'
检查条目中标记的典型SQL调用是
SELECT *
FROM entries AS en
LEFT JOIN entries_to_tags AS entg ON en.id = entg.entry_id
LEFT JOIN tags_table AS tg ON entg.tag_id = tg.id
WHERE en.title = 'my article title'
答案 1 :(得分:0)
设计数据库表的最佳方法是尽可能将它们分开。在这种情况下,我将使用3个表来设计它:Post,Category和PostCategory。 Post将是用户创建的每个帖子的表格。 类别应该是查找表。 PostCategory是存储每个帖子类别的表。