Ведение очереди строк для каждого идентификатора в базе данных

У меня есть таблица MySQL, в которой есть столбец для ID. Это автоинкрементное целое число и является первичным ключом таблицы.

Мне нужно поддерживать очередь строк (тегов) для каждой строки в моей таблице (для каждого идентификатора, который вы можете сказать, так как это первичный ключ).

Например: — Очередь для ID = 1 может быть «привет», «idontknow», «пока»

Очередь для ID = 2 может быть «idontknow», «whoareyou», «пока»

Максимальная длина очереди может доходить до 10.

Периодический скрипт, выполняющийся на моем сервере, будет каждый раз удалять элемент (строку) из очереди для всех идентификаторов. И обновил бы оставшееся в таблицу. Например: для ID = 1 «hello», «idontknow», «bye», «hello» будут удалены, а обновленное значение столбца будет «idontknow», «bye».

Все это происходит в масштабе. Одним щелчком мыши новый элемент (строка) может быть добавлен в очереди для всех строк в таблице.

Каков наилучший способ справиться с этим? Должен ли я иметь столбец (разделенную запятыми строку членов в очереди) в моей таблице, которая добавляет члена в очередь (столбец) каждый раз? И после извлечения удаляет член и обновляет обновленное значение в столбце.

или я должен иметь отдельную таблицу в БД, которая будет иметь несколько строк для каждого идентификатора. Строки будут содержать членов очереди индивидуально. В этом случае до 10 тыс. Вставок может произойти одновременно. И при извлечении, удаление 10 тыс. Может происходить одновременно.

Что ты предлагаешь? Какой способ более масштабируемый?

Структура БД для второго метода:

Таблица клиентов

ID, Имя

Теперь необходимо вести очередь для каждого клиента в другой таблице.

Таблица очередей

ID (первичный ключ этой таблицы), CustomerID (внешний ключ из таблицы клиентов),
String (строка члена в очереди)

Так что мне нужно будет извлечь из таблицы очередей, по CustomerID.

0

Решение

Вы можете изменить свой стол на это:

id | CusomterID | string
---+------------+----------
1 |          1 | hello
2 |          1 | idontknow
3 |          1 | bye
4 |          2 | something

Тогда вся ваша таблица — это очередь. Это делает чтение следующей работы в очереди действительно простым, и делает обновление очереди действительно простым.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]