Какой лучший способ описания выбора города в Maria DB

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

Я могу придумать 2 способа сделать это:

  1. Добавить столбец для каждого клиента в таблице городов с логическим значением.
  2. Чтобы добавить один столбец в таблицу клиентов типа символов и поместить туда все городские идентификаторы, разделяя их символами ‘,’ или ‘_’.

Данные будут обрабатываться с помощью PHP. БД небольшая: всего 50 клиентов и 200 городов.

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

Мне больше нравится второй подход, но он почему-то не вписывается в «способ БД» структурирования данных.

Как вы думаете?

1

Решение

Я не знаю mariadb, но вы пытаетесь смоделировать отношения «многие ко многим». В базе данных SQL вы можете создать новую таблицу «подписки» (или, как вы ее называете) следующим образом:

user_id  |  city_id  | (additional options if needed)

Однако в mongodb у вас вместо этого (обычно) есть список ссылок (идентификаторов):

collection users:
{
"name": "blabal",
"cities": [ 1, 2, 7 ]
}

Никогда не используйте этот строковый вариант, он тратит довольно много места и неэффективен для поиска и т. Д.

1

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

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

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