Как реализовать этот канал JSON в структуру базы данных?

В настоящее время я работаю над приложением, в которое добавляю магазины, в которых покупатели могут купить товар. Теперь у меня есть канал json с магазинами, из которого я могу получить все данные магазина.

Поля, такие как телефон, почтовый индекс и адрес, являются стандартными и простыми в применении. Но канал json также дает мне список дней недели, когда магазин будет открываться / закрываться.

У меня нет опыта внедрения чего-то подобного в базу данных. Как бы я пошел осуществить это? Я думаю, что просто выгрузка массива в одном поле — это, вероятно, плохая идея, но, опять же, мне не придется это придумывать, так как он обновляется только из фида json через вызовы API.

Я бы, вероятно, создал что-то вроде таблицы creation_hours. Я бы, вероятно, использовал:

  • store_id
  • будний день
  • время открытия
  • время закрытия

Но каждый магазин будет иметь свои будние дни 1,2,3,4,5,6, соответствующие с понедельника по субботу. Это, вероятно, вызвало бы много повторных данных, но я думаю, что просто нет пути к этому?

Надеюсь, кто-нибудь может направить меня в правильном направлении.

Пример подачи в json:

openinghours: [
{
closing: "18:00",
weekday: 0,
opening: "12:00"},
{
closing: "18:00",
weekday: 1,
opening: "09:00"},
{
closing: "18:00",
weekday: 2,
opening: "09:00"},
{
closing: "18:00",
weekday: 3,
opening: "09:00"},
{
closing: "18:00",
weekday: 4,
opening: "09:00"},
{
closing: "17:30",
weekday: 5,
opening: "09:00"},
{
closing: null,
weekday: 6,
opening: null
}
],
lng: 4.6217623,
id: 5014

0

Решение

Во-первых, нужно ли хранить эти данные для вашего приложения? Вполне допустимо игнорировать часы открытия / закрытия, если вы никогда не собираетесь их использовать.

если ты являются собираетесь использовать эти данные, это будет только для отображения? Если это так, вы можете просто сохранить массив JSON в его первоначальном формате в поле «часы» для таблицы магазинов и декодировать его при необходимости. Если данные должны быть поиск, тогда да, вы, вероятно, собираетесь создать таблицу «один ко многим», как описано выше. В качестве альтернативы, вы можете создать таблицу со столбцами для каждого дня:

store_id  mon_op  mon_clos  tue_op  tue_clos . . .  sat_op  sat_clos

Это позволило бы избежать проблемы «один ко многим», но на самом деле не намного яснее. Однако какой бы формат вы ни выбрали, я бы порекомендовал преобразовать часовую строку в подходящий формат даты / времени для удобства поиска.

1

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

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

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