Мне показалось, что я столкнулся с решением моей проблемы, но мой подход не подходит для всех моих потребностей. Поэтому я прибегаю к вашим предложениям. Вот в основном то, что я хочу добиться:CakePHP PrivateMessage Schema and Associations
У меня есть 3 таблицы базы данных:
- пользователей: ID, имя пользователя, ...
- private_messages: идентификатор, ...
- private_messages_users: идентификатор , private_message_id, sender_id, recipient_id, статус
Просмотр этой схемы базы данных, можно заметить, что для каждого сообщения я создаю строку в таблице присоединиться, это означает, что если я посылаю сообщение для двух получателей , в таблице соединений будут вставлены две вставленные строки. Если у вас есть другой подход, я открыт для предложений.
мне нужно определить ассоциации для того, чтобы:
- быть в состоянии составить сообщение; в форме компоновки я хотел бы иметь несколько списков, из которых я могу выбрать получателей, на которые я хотел бы отправить сообщение; отправитель здесь не важен, так как я добавлю его вручную в массив $ this-> data до сохранения
- можно создать папку «Входящие» и отправленную папку, в которой я бы получил все полученные сообщения, соответственно, отправил
- иметь возможность просмотреть отправленное сообщение, вместе со всеми получателями он был отправлен
- иметь возможность пометить сообщение как прочитанное, когда пользователь просматривает его в первый раз
- также для каждого sender_id и recipient_id, я бы как получить имя пользователя из таблицы пользователей
Я бы хотел, чтобы все действия требовали ested будет завершен «cakily», что означает «хаки» или методы преобразования массивов. Просто операции, основанные исключительно на созданных ассоциациях.
Любая помощь будет высоко оценена, поскольку я борюсь с этой проблемой в течение недели. Большое спасибо!
Я не понимаю, на ваш вопрос. Ваш подход выглядит хорошо с высокого уровня (хотя я бы не стал называть вашу таблицу private_messages, поскольку это могло бы создать проблемы для программиста, подобного мне (я избегаю подчеркивания в названии b/c cake sorta имеет зарезервированное для метазначения) – 2010-12-09 19:47:01
I хотел бы предложить предложение относительно ассоциаций между тремя моделями для того, чтобы эти условия имели место. – linkyndy 2010-12-09 20:19:53