假设我有一张表格,它可以有0个或多个标签:
TABLE: foo
- foo_id (PK)
TABLE: tag
- tag_id (PK)
- name
TABLE: foo_tag
- foo_tag_id (PK)
- foo_id (FK)
- tag_id (FK)
问题:
- 我看到上面提到的标签系统是最常见和最简单的实现方式。我知道标记系统在可扩展性方面存在潜在的问题。这里会有这个问题吗?
- 在PHP或SQL中是否有一种方法可以像这样做:插入一个新的标签“bar”。如果“bar”不存在,则将其添加到
tag
表中并返回最后插入的id。如果“bar”已经存在,则不要将其添加并返回tag_id。 - #2中描述的这种表是否有“适当”的数据库术语?