@mkramer Вот интересует ещё что, запись в эту таблицу dialogs_read делать такую же как и в таблице dialogs_user? А именно двунаправленную: dialog_id(1), user_id(1), has_read(0) dialog_id(1), user_id(2), has_read(1) Где 0 прочитано а 1 не прочитано. Ведь я правильно сейчас мысль вашу понял?
Развивай мысль сам. Посмотри, попробуй запросы написать. Если интересно, почему отдельная таблица - опять же, чтоб не было дурацких or и if в запросах. В принципе, has_read можно и вообще убрать, а просто удалять из этой таблицы, использовать left join. А можно и не убирать. Программист - тот, кто думает.
@mkramer Я уже запросы написал обычная вставка и обычное обновление таблицы. Все вроде в порядке как и описал выше делаю 2 записи для отправителя и получателя отправителю сразу считаем что он прочитал а получателю считаем что он его ещё не читал. Только появилась сомнения на счёт этой таблицы, зачем она нужна если такая же таблица уже создана ранее а то-есть dialog_user только в ней нет поля has_read
@mkramer Вот ты поясни как у тебя запись происходит, в этой таблице я запрос попробую сам написать, да я знаю что нужно продумать, ну если логика не приходит в голову, как ты думаешь что я могу написать?
@mkramer Ты мне не хочешь подсказать, как правильно всего лишь таблицы организовать? запросы я и сам попробую сделать, я же объяснил я создал таблицу dialogs_read с полями (dialog_id, user_id, has_read) и при проверке если нет диалога между пользователями я делаю вставку, и в три таблицы делаю insert вставку: в таблице dialogs получается вставка: id(1), last_message_id(5), last_sender_id(32), date(2017.06.05) в таблице dialogs_user получается вставка: dialog_id(1), user_id(32) //id юзера 32 dialog_id(1), user_id(23) //id юзера 23 в таблице dialogs_read получается вставка: dialog_id(1), user_id(32), has_read(0) //прочитано dialog_id(1), user_id(23), has_read(1) //не прочитано Тебе не кажется что выше две таблицы похожи, может их объединить или правильно хай будут разделенные, чтобы видно было диалоги, и чтения диалога? Да и еще что ты на счет has_read говорил можно его убрать я этого не понял. У меня сегодня голова свежая, думать будет на ура!!!
Зачем тебе моё одобрение? Я решал свою задачу, мне было удобнее отдельную таблицу. Если тебе удобнее объединить - объедини. При отдельной таблице - конечно можно убрать, тогда условием, что диалог прочитан будет само наличие соответствующей записи в этой таблице. А когда он не прочитан, запись можно удалить. Это всё варианты, выбирать теюе
Если я сомневаюсь правильная у меня логика или нет, я пишу программу, запускаю, если работает как надо - логика правильная.
@mkramer я и не сомневался, что ты так делаешь, когда опыта мало надо хвататься где можешь схватится и узнать правильно ли так делать!
А откуда опыт будет, если у дяди всегда спрашивать? Опыт - сын ошибок трудных, как сказал наш классик
@mkramer Понятно, буду думать значит дальше. Либо второй вариант ты намекни мне как это реализовать в таблицах. Тебе же не тяжело напечатать текст и описать что происходит в таблицах. Если отвечать не хочешь ответь правильно ли я создал 2 направленную вставку для отправителя прочитано а для получателя нет.
Тут нету "правильно" - "не правильно". Работает или не работает. Удобно пользовать, не удобно пользовать. Быстро работает, медленно работает.
@mkramer Все понял, делать так как считаешь нужным) Но для меня такой подход не подходишь, есть же какие-то предложения как бы сделал один как бы сделал другой programmer и ты потом можешь выбрать оптимальный для тебя, вот такой подход для меня сейчас. Со временем я его сам буду делать такой подход.