я бы завел суррогатный id pk autoincrement, а на те три колонки навесил unique index. но это один из вариантов, тут конечно вопрос дизайна БД... может кто подскажет лучше
ещё учитывать, что orm (в данном случае eloquent) - им "привычно" что у модели есть id pk autoincrement, хотя если не планируется заводить модель для этой пайвот таблицы, и не надо будет потом добавлять колонки типа "дата привязки / отвязки", включена ли привязка, проверена ли модератором, и всё вот это такое, то есть чисто факт привязки храним в таблице - тогда норм
а вообще щас глянул - mysql поддерживает composite primary key, значит такой способ будет работать - можно смело делать $table->primary(['tag_id', 'taggable_id', 'taggable_type']);
а вообще щас глянул - mysql поддерживает composite primary key, значит такой способ будет работать - можно смело делать $table->primary(['tag_id', 'taggable_id', 'taggable_type']);
ещё учитывать, что orm (в данном случае eloquent) - им "привычно" что у модели есть id pk autoincrement, хотя если не планируется заводить модель для этой пайвот таблицы, и не надо будет потом добавлять колонки типа "дата привязки / отвязки", включена ли привязка, проверена ли модератором, и всё вот это такое, то есть чисто факт привязки храним в таблице - тогда норм
да по сути и в таком случае можно будет через pivot взаимодействовать