我有一个CMS系统,它像这样跨表存储数据:
Entries Table
+----+-------+------+--------+--------+
| id | title | text | index1 | index2 |
+----+-------+------+--------+--------+
Entries META Table
+----+----------+-------+-------+
| id | entry_id | value | param |
+----+----------+-------+-------+
Files Table
+----+----------+----------+
| id | entry_id | filename |
+----+----------+----------+
Entries-to-Tags Table
+----+----------+--------+
| id | entry_id | tag_id |
+----+----------+--------+
Tags Table
+----+-----+
| id | tag |
+----+-----+
我正在尝试实现一个修订系统,有点像SO。如果我只是针对
Entries Table
做这件事,我计划只在单独的表中保留该表所有更改的副本。由于我必须为至少4个表执行此操作(TAGS表不需要进行修订),因此这似乎完全不是一种优雅的解决方案。你们会如何处理?
请注意,元表采用EAV(实体-属性-值)建模。
提前感谢您。
Media Wiki
表格方案更接近于性能和可用性方面的答案;我相信你的答案与Edward的答案在原理上是一致的,只是在方案设计上更好,所以我接受了它。谢谢! - Frankie