这是场景:
我有几个帖子表和一个投票表。如何防止在投票表中插入不存在的 post_id(在帖子表中)?
// Posts_1 // Posts_2 // Posts_3
+----+---------+ +----+---------+ +----+---------+
| id | content | | id | content | | id | content |
+----+---------+ +----+---------+ +----+---------+
// Votes
+----+---------+
| id | post_id |
+----+---------+
为此,我创建了一个 Post_Index
表,它将所有帖子合并到一个位置,并如下所示:
// Posts_Index
+----+---------+------------+
| id | post_id | post_table |
+----+---------+------------+
再加上这样的 FK:post_id -> votes.id
。
这是我的问题:
现在我想知道,创建一个 VIEW
而不是 TABLE
是否更好(Posts_Index
)?因为帖子会一直增加,我每次都需要更新该表(在每个 Posts
表上使用 TRIGGER
来插入新行插入自身后的“Post_Index”)
我为什么问这个问题:
因为我在文档中读到,每次执行引用 View 的语句时,都会根据逻辑创建 VIEW。所以,我认为它需要大量的处理。
<小时/>现在,我想知道的是:
就我而言,一个 VIEW
更好,或者一个 TABLE
和每个 Posts 表上的多个 TRIGGER
,以便在该表中创建一个新行插入每个帖子表后的表?
最佳答案
您可以将 votes.post_id
列声明为 posts.id
的外键。请参阅MySQL documentation了解更多详细信息。
关于mysql - View 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34371983/