taggable_id 在标记系统中的作用是什么?
What is taggable_id for in tagging system?
大多数人可能会自己解决这个问题,但我是一个菜鸟,所以为了其他菜鸟,我会试一试这个问题。
我正在尝试设置 laravel-tagging,一个用于 Laravel 框架的标记系统,它可能具有与任何其他标记系统相似的结构。它带有 2 tables:
tagging_tags
tagging_tagged
tagging_tags
是存储标签的地方。
tagging_tagged
可能是存储标记文章的地方,但我不确定。
table 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
的用途?
如果这个问题不合适,我深表歉意。
这是 Polymorphic Relation
,这种关系允许一个模型在一个关联中属于多个其他模型。
假设您有 Post
和 Comment
模型,并且它们都可以有 tags
。
两者都只能使用一个 table。
并且 taggable_id
列将包含 post 或评论的 ID 值,而 taggable_type
列将包含所属模型的 class 名称
多亏了 whyguy 的回答,我才能够弄清楚 taggable_id
和 taggable_type
是什么以及如何使用它们。在我撰写本文时,Laravel 似乎是少数几个利用多态关系的主要框架之一。但就最小化实现数据库模式所需的代码量而言,它似乎非常有用。
对于任何对 Laravel、here is a youtube video that I found helpful and here is a piece of Laravel documentation 中的多态关系感到困惑的人。
大多数人可能会自己解决这个问题,但我是一个菜鸟,所以为了其他菜鸟,我会试一试这个问题。
我正在尝试设置 laravel-tagging,一个用于 Laravel 框架的标记系统,它可能具有与任何其他标记系统相似的结构。它带有 2 tables:
tagging_tags
tagging_tagged
tagging_tags
是存储标签的地方。
tagging_tagged
可能是存储标记文章的地方,但我不确定。
table 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
的用途?
如果这个问题不合适,我深表歉意。
这是 Polymorphic Relation
,这种关系允许一个模型在一个关联中属于多个其他模型。
假设您有 Post
和 Comment
模型,并且它们都可以有 tags
。
两者都只能使用一个 table。
并且 taggable_id
列将包含 post 或评论的 ID 值,而 taggable_type
列将包含所属模型的 class 名称
多亏了 whyguy 的回答,我才能够弄清楚 taggable_id
和 taggable_type
是什么以及如何使用它们。在我撰写本文时,Laravel 似乎是少数几个利用多态关系的主要框架之一。但就最小化实现数据库模式所需的代码量而言,它似乎非常有用。
对于任何对 Laravel、here is a youtube video that I found helpful and here is a piece of Laravel documentation 中的多态关系感到困惑的人。