假设我有一个可以有0个或多个标签的表:MySQL的:标签系统
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”。如果“酒吧”不存在,将其添加到
tag
表中并返回最后插入的ID。如果“bar”确实存在,请不要添加它并返回tag_id。 - 对于在#2中描述的这样的表,是否存在“适当”的DB术语?
几乎相同:http://stackoverflow.com/questions/20856/how-do-you-recommend-implementing-tags-or-tagging –
链接可能回答问题#1。问题#2和#3对我来说也很重要。 – StackOverflowNewbie