Схема БД для Laravel приложения, записывающего точки данных на произвольное количество переменных - PullRequest
0 голосов
/ 07 января 2020

Мой вопрос касается создания правильной схемы или способа хранения данных, которые я собираю. Мое приложение работает Laravel 6.

Итак, у меня есть несколько «кампаний», пример которых выглядит так:

{
  "campaign_name": "Campaign 1",
  "keywords": ["keyword 1", "keyword 2", "keyword 3"], // there may be hundreds of keywords
  "urls": ["google.com", "bing.com", "example.com"], // there may be many urls
  "business_names": ["Google", "Bing, "Example"], // there may be many business_names
  "locations": [
    {
      "address": "location 1", //this is a postal address
      "lat": "-37.8183",
      "lng": "144.957"
    },
    {
      "address": "location 2", //this is a postal address
      "lat": "-37.7861",
      "lng": "145.312"
    }
    // there may be 50-100 locations.
  ]
}

Каждый URL (и каждое название компании) будет получить соответствие каждому ключевому слову вместе с каждым местоположением.

ie:

google.com
  - keyword 1 location 1
  - keyword 1 location 2
  - keyword 1 location 3
  - keyword 2 location 1
  - keyword 2 location 2
// etc etc.  there may be hundreds of keywords and hundreds of locations.

bing.com
  - keyword 1 location 1
  - keyword 1 location 2
  // etc etc as above.

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

Я вижу, как можно настроить несколько таблиц, чтобы справиться с этим, но есть ли способ немного упростить это, сохранив некоторые json?

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

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

...