假设 google.com 的标签名为:
search,google,searchengine,engine,web
Facebook 的标签名为:
facebook,social,networking,friends,community
我应该如何将域及其各自的标签存储在数据库中?
最佳答案
你应该创建 3 个表来存储所有这些东西:
域:id |姓名
标签:id |姓名
domains_tags: tag_id | domain_id
域:
id | name
------------------
1 | google.com
2 | stackoverflow.com
标签:
id | name
------------------
1 | web
2 | lol
3 | facepalm.jpg
域标签:
domain_id | tag_id
------------------
1 | 1
1 | 2
2 | 3
在此示例中,有 2 个标签与 google
域相关,1 个标签与 SO
对于每个关系,您需要向 domains_tags
添加一条记录,以存储域和特定标签之间的关系。
这项技术被命名为Many-To-Many
正如在另一个答案中所建议的那样 - 您还可以向名为 tags
的 domains
添加额外的字段,并将标签存储在那里,用逗号分隔,但这个解决方案很奇怪,因为你'当您需要对域和标签进行一些分析/统计/搜索时,您会遇到麻烦。遵循这个想法的唯一原因是“缓存”当前域的标签列表以仅显示,作为补充(而不是替代!!)到我首先给出的解决方案。
关于mysql - 我应该如何在数据库中存储域名标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4940763/