Здравствуйте. Делаю доску объявлений на yii, хотел бы добавить к функционалу обмен сообщениями между пользователями. Так как опыта немного, хотелось бы знать, как бы это реализовать, скажем так, кошернее. Заводить на каждого пользователя таблицу с сообщениями, с полями for, или делать общую таблицу всех сообщений с полями id from и id for и потом выбирать из нее? Но тогда сильно упадет производительность… В общем подскажите пожалуйста, кто как делал такое. И еще, стоит ли crud делать на AR (производительность не подведет?) или все таки query builder? Спасибо.
Я делал одной таблицей (и, по-моему, других “кошерных” вариантов тут нет), с ActiveRecord тоже проблем нету, если вы не собираетесь выводить тысячи сообщений за раз
И еще вопрос, что бы не создавать новую тему, по поводу хорошего тона. Правильно ли иногда некоторые настройки (ну админки например), или параметры юзера, хранить в одной ячейке таблицы в сериализованном виде?
Если есть миллионы и сложный поиск, Вы хотели сказать? Если юзеров миллион, но эти параметры не будут участвовать в поиске, то ничего страшного не случится.
Ну даже в таком случае это неприятно. Размер таблицы растет очень быстро, и на миллионах она добирается до гигабайтов. Хотя да, елси поиска нет, то ничего страшного.
У меня такая вот беда на 1м проекте, табличка перевалила за 60м уже, и 1 поле с сериализацией(тогда я не знал что так лучше не делать, каюсь). Поиск работает шустро, так как все поля заиндексированы, по которым он идет, но вот размер таблицы напрягает.