大多数人可能会自己解决这个问题,但我是个菜鸟,所以为了其他菜鸟,我会尝试一下这个问题。
我正在尝试设置laravel-tagging ,Laravel 框架的标签系统,它可能具有与任何其他标签系统类似的结构。它配有 2 张 table :
tagging_tags
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
的用途?
如果这个问题不恰当,我深表歉意。
最佳答案
这是多态关系
,这种关系允许一个模型在单个关联上属于多个其他模型。
假设您有 Post
和 Comment
模型,并且它们都可以有 标签
。
您必须仅使用一张表来处理两者。
taggable_id
列将包含帖子或评论的 ID 值,而 taggable_type
列将包含所属模型的类名
关于php - taggable_id在标签系统中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37187136/