php - taggable_id在标签系统中的作用是什么?

标签 php laravel tagging

大多数人可能会自己解决这个问题,但我是个菜鸟,所以为了其他菜鸟,我会尝试一下这个问题。

我正在尝试设置laravel-tagging ,Laravel 框架的标签系统,它可能具有与任何其他标签系统类似的结构。它配有 2 张 table :

  1. tagging_tags
  2. tagging_tagged

tagging_tags 是存储标签的位置。

tagging_tagged 可能是存储标记文章的位置,但我不确定。

tagging_tagged包含一列taggable_id,它不是主键,也没有自动增量:

Field             Type                Null    Key   Default Extra
'id',             'int(10) unsigned', 'NO',  'PRI', NULL,   'auto_increment'
'taggable_id',    'int(10) unsigned', 'NO',  'MUL', NULL,    
'taggable_type',  'varchar(255)',     'NO',  'MUL', NULL,    
'tag_name',       'varchar(255)',     'NO',         NULL,    
'tag_slug',       'varchar(255)',     'NO',  'MUL', NULL,    

taggable_id 是已标记文章的外键吗?那不应该是 tagged_id 吗?谁能给我指点一些解释标记系统结构的新手指南,或者只是解释一下 taggable_id 的用途?

如果这个问题不恰当,我深表歉意。

最佳答案

这是多态关系,这种关系允许一个模型在单个关联上属于多个其他模型。

假设您有 PostComment 模型,并且它们都可以有 标签

您必须仅使用一张表来处理两者。

taggable_id 列将包含帖子或评论的 ID 值,而 taggable_type 列将包含所属模型的类名

关于php - taggable_id在标签系统中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37187136/

相关文章:

php - 如何构建像 stackoverflow 这样的标记系统

jquery - 用于标记研究数据的简单界面?

php - mysql使用php安全快速的选择和插入

php - 保证上传文件的安全,但仍可通过 https 访问

php - 数据库无法保存大内容

Laravel : How to localize dates within views with Carbon

jquery - 是否有仅 JQuery(没有 JQuery UI)标签之类的插件?

php - 同一查询中的 SQL LIKE 和 NOT LIKE

php - UTF-8贯穿始终

php - ZF2 中的 SELECT (COUNT(*)) 查询