2014-10-05 3 views
0

Итак, все кодирующие ниндзя, я вернулся, начал изучать мир веб-разработки (и это просто потрясающе, я должен сказать). Я застрял в проблеме.как сохранить данные в отношении каждого пользователя?

Что я делаю: Мой HTML выглядит примерно так

<ul data-role="listview" > <!-- List items come here --> </ul>

Эти элементы списка генерируются динамически через вызов AJAX к функции PHP (я имею в виду использовать нумерацию страниц, так как данные в UL могут расти).

До сих пор я использую один сценарий пользователя (только один пользователь, обращающийся к веб-сайту за раз). Эти данные выглядят нормально.

Задача Теперь я собираюсь увеличить присутствие пользователя. Пользователи одновременно могут войти в систему. Я столкнуться с ситуацией, как:

Пользователь A: сгенерировал UL с текущим сценарием в БД (скажем, 10 строк)

Пользователь B заключает и хиты освежать к моему UL и Унесенных ! Пользователь А больше не будет иметь набор данных, он/она работает с, и теперь он имеет 12 строк (таблицы БД получили более 2 вставки)

Вопрос: Простите меня, если я спрашиваю тупой вопрос. Как я могу преодолеть этот многопользовательский сценарий, получая доступ к тем же данным, но не затрагивая других пользователей?

Было бы очень полезно, если решение, данное может быть легко переваривается Новичка, как я :-)

Edit: Позвольте мне привести пример:

пользователя A Записанное: В настоящее время у меня есть 5 рядов в БД, например

  • Гамлет
  • Макбет
  • Брут
  • Цезарь
  • Уильям

так что мой UL будет выглядеть примерно так:

B Logs
<ul data-role="listview" id="authors"> 
    <li>Hamlet</li> 
    <li>Macbeth</li> 
    <li>Brutus</li> 
    <li>Caesar</li> 
    <li>William</li> 
</ul> 

Теперь пользователя в и было дополнительные вставки в БД

  • Гамлет
  • Макбет
  • Брут
  • Цезарь
  • Уильям
  • Антонио

поэтому мой UL должен выглядеть (только для пользователя B, а не для пользователя A)

<ul data-role="listview" id="authors"> 
    <li>Hamlet</li> 
    <li>Macbeth</li> 
    <li>Brutus</li> 
    <li>Caesar</li> 
    <li>William</li> 
    <li>Antonio</li> 
</ul> 
+0

Это больше похоже на проблему протокола, чем на программную проблему. Вы должны указать, что происходит при вставке/удалении/изменении строк одновременно несколькими пользователями, а затем реализовать решение. Кроме того, протокол будет специфичным для вашего домена. – clapas

+0

@clapas: Его единственная операция выбора из БД. любезно проверьте мое Редактирование. Приведен пример – SilentCrusader

+0

Я уже понял, что вы имеете в виду. Итак, в чем проблема и что вы хотите, чтобы решение было? – clapas

ответ

0

Моя догадка: добавить столбец в таблице с данными, которая содержит идентификатор пользователя, который принадлежит данные для

Затем выберите эти данные из таблицы, где идентификатор пользователя соответствует текущему пользователю запроса данные

+--------+------+ +--------+---------+--------+ 
| UserID | Name | | ItemID | Content | UserID | 
+--------+------+ +--------+---------+--------+ 
| 1  | John | | 123 | Lorem.. | 2  | <-- This row belongs to Bill 
| 2  | Bill | | 124 | Lipsu.. | 1  | <-- This row belongs to John 
| 3  | etc. | +--------+---------+--------+ 
+--------+------+ 

-- This query would select data belonging to the user Bill 
SELECT `Content` FROM `yourdatatable` WHERE `UserID` = 2 
+0

Я не думаю, что это возможно, отбор строки конкретному пользователю не решит проблему, так как в любой момент любой пользователь увидит последний снимок таблицы, если он не нажмет кнопку обновления. Согласно вашему решению, пользователь 1 увидит только «124 | Lipsu ..», а User 2 увидит «123 | Lorem ..» (но в идеале, пользователь 2 должен увидеть как ItemID, т. Е. 123,124. Поскольку он запросил последний снимок, а User 1 все еще в порядке со старыми данными). Поправьте, где я ошибаюсь! – SilentCrusader

+0

Также сторона БД Приложения не в моих руках (другая команда управляет ею), и, спрашивая их о каких-либо модификациях сторон БД, на самом деле невозможно. – SilentCrusader

Смежные вопросы