eine many-to-many polymorphe Beziehung ermöglicht es Ihnen, eine einzelne Liste der einzigartigen Tags zu haben, die über Blog-Posts und Videos geteilt sind.
Nachdem gelesen, dass ich taggable_id
Referenzen entweder posts.id
oder videos.id
, als „markierbare“ Entitäten sagen würde. Dann beantwortet der taggable_type
die Frage - ist das taggable_id
ein Video oder ein Beitrag?
Volltabellenstruktur zur besseren Visualisierung:
posts
id - integer
name - string
videos
id - integer
name - string
tags
id - integer
name - string
taggables
tag_id - integer
taggable_id - integer
taggable_type - string
Beispiel:
Beiträge
+----+-----------+
| id | name |
+----+-----------+
| 12 | test post |
+----+-----------+
Videos
Tags
+----+--------------+
| id | name |
+----+--------------+
| 88 | programming |
+----+--------------+
taggables
+--------+-------------+---------------+
| tag_id | taggable_id | taggable_type |
+--------+-------------+---------------+
| 88 | 12 | post |
+--------+-------------+---------------+
| 88 | 5 | video |
+--------+-------------+---------------+
Ja, aber was tag_id ist dann? – Leff
Nun, genau, was es sagt: die ID des Tags, aus der 'Tags' Tabelle. Auch hier kann ein einzelnes Tag über Posts und Videos hinweg * geteilt * werden. – lesssugar