【发布时间】:2015-07-13 15:08:00
【问题描述】:
我的数据库有几个类别,我想将用户创作的文本“注释”附加到这些类别中。例如,一个名为jobs 的高级表中的条目可能有一些用户写的关于它的注释,但sub_projects 中的一个较低级别的条目也可能如此。由于这些笔记都是相同的格式,我想知道我是否可以通过只有一个笔记表而不是像job_notes或project_notes这样的一系列表来简化事情,然后使用多个多对多关系以一次将其链接到其他几个表。
如果这不是从一开始就存在严重缺陷的想法(如果是,请告诉我!),我想知道最好的方法是什么。在我看来,我可以通过两种方式做到这一点:
- 为每个较大的类别(例如
job_notes_mapping和project_notes_mapping)提供多对多连接表,并单独管理 MtM 关系 -
将单个联结表链接到
table_type的枚举或单独的表,它指定 MtM 关系映射到哪个表:+-------------+-------------+---------------+ | note_id | table_id | table_type_id | +-------------+-------------+---------------+ | 1 | 1 | jobs | | 2 | 2 | jobs | | 3 | 1 | project | | 4 | 2 | subproject | | ........... | ........... | ........ | +-------------+-------------+---------------+
如果这些想法中的任何一个是完全可怕的想法,请原谅我,但我认为这至少在概念上可能是一个有趣的问题。
【问题讨论】:
标签: mysql database many-to-many junction-table