Реализация облаков тегов с CakePHP - PullRequest
0 голосов
/ 27 марта 2012

Я провел небольшое исследование облаков тегов и в итоге выбрал схему, похожую на схему Wordpress, представленную на этой странице: http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html

В настоящее время я создал следующие таблицы: Posts, PostsTagMaps, PostsTags

1) Нужно ли мне создавать таблицу для PostsTagMaps, даже если я не планирую использовать контроллер?

2) A Post имеет много PostTagMaps. Я не уверен, где я должен определять эти отношения. Я думаю, что это должна быть модель Post, но тогда мне придется присоединить таблицу PostsTags к PostTagsMaps, а затем присоединить ее к Posts, поэтому я хотел бы попросить совета.

1 Ответ

1 голос
/ 27 марта 2012

Простое решение состоит в том, чтобы следовать соглашениям Cake (которые будут очень похожи на решение, с которым вы связаны). У вас будет три стола:

posts, tags, posts_tags

Тогда ваша Post модель HABTM Tag модель. Соединительная таблица будет автоматически использоваться Cake для сохранения и извлечения информации. Проверьте книгу для получения дополнительной информации о настройке вашей схемы.

Cake достаточно гибок, когда вы можете делать это как хотите, но если это базовый вид отношения пост-тегов, то лучше всего использовать метод соглашения.

Если вы хотите использовать пользовательскую модель / таблицу, такую ​​как PostsTagMaps, то сделайте это, используя клавишу «с» в определении отношения HABTM. Клавиша «с» указывает Cake использовать определенную модель (и, следовательно, конкретную таблицу) вместо автоматически сгенерированной версии. В этом случае ваша модель тега звучит так, как будто она PostsTags, а таблица HABTM - PostsTagMaps, поэтому клавиша «с» на Post HABTM PostsTag будет PostsTagMap.

.
...