За последние 24 часа нас посетили 18869 программистов и 1667 роботов. Сейчас ищет 1091 программист ...

Как реализовать смс переписку между авторизованными пользователями сайта PHP MySQL

Тема в разделе "PHP для новичков", создана пользователем _ne_scaju_, 11 май 2017.

  1. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @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 не прочитано.
    Ведь я правильно сейчас мысль вашу понял?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.580
    Симпатии:
    1.760
    Развивай мысль сам. Посмотри, попробуй запросы написать. Если интересно, почему отдельная таблица - опять же, чтоб не было дурацких or и if в запросах. В принципе, has_read можно и вообще убрать, а просто удалять из этой таблицы, использовать left join. А можно и не убирать. Программист - тот, кто думает.
     
  3. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    Я уже запросы написал обычная вставка и обычное обновление таблицы. Все вроде в порядке как и описал выше делаю 2 записи для отправителя и получателя отправителю сразу считаем что он прочитал а получателю считаем что он его ещё не читал.
    Только появилась сомнения на счёт этой таблицы, зачем она нужна если такая же таблица уже создана ранее а то-есть dialog_user только в ней нет поля has_read
     
  4. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    Вот ты поясни как у тебя запись происходит, в этой таблице я запрос попробую сам написать, да я знаю что нужно продумать, ну если логика не приходит в голову, как ты думаешь что я могу написать?
     
  5. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @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 говорил можно его убрать я этого не понял.

    У меня сегодня голова свежая, думать будет на ура!!!
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.580
    Симпатии:
    1.760
    Зачем тебе моё одобрение? Я решал свою задачу, мне было удобнее отдельную таблицу. Если тебе удобнее объединить - объедини. При отдельной таблице - конечно можно убрать, тогда условием, что диалог прочитан будет само наличие соответствующей записи в этой таблице. А когда он не прочитан, запись можно удалить. Это всё варианты, выбирать теюе
     
  7. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    --- Добавлено ---
    @mkramer
    --- Добавлено ---
    @mkramer
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.580
    Симпатии:
    1.760
    Если я сомневаюсь правильная у меня логика или нет, я пишу программу, запускаю, если работает как надо - логика правильная.
     
  9. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    я и не сомневался, что ты так делаешь, когда опыта мало надо хвататься где можешь схватится и узнать правильно ли так делать!
     
  10. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.580
    Симпатии:
    1.760
    А откуда опыт будет, если у дяди всегда спрашивать? Опыт - сын ошибок трудных, как сказал наш классик
     
  11. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    Понятно, буду думать значит дальше. Либо второй вариант ты намекни мне как это реализовать в таблицах. Тебе же не тяжело напечатать текст и описать что происходит в таблицах. Если отвечать не хочешь ответь правильно ли я создал 2 направленную вставку для отправителя прочитано а для получателя нет.
     
  12. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.580
    Симпатии:
    1.760
    Тут нету "правильно" - "не правильно". Работает или не работает. Удобно пользовать, не удобно пользовать. Быстро работает, медленно работает.
     
  13. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @mkramer
    Все понял, делать так как считаешь нужным)
    Но для меня такой подход не подходишь, есть же какие-то предложения как бы сделал один как бы сделал другой programmer и ты потом можешь выбрать оптимальный для тебя, вот такой подход для меня сейчас. Со временем я его сам буду делать такой подход.
     
    #338 _ne_scaju_, 29 июн 2017
    Последнее редактирование: 29 июн 2017