несколько хранилищ данных (базы данных и JSON) для одной модели, как это сделать? - PullRequest
0 голосов
/ 04 мая 2019

Хорошо, поэтому у меня есть несколько хранилищ данных для некоторых моделей в моем проекте, хранилище базы данных, в котором можно сохранять пользовательские данные, и хранилище json, в котором есть фиксированные данные для сравнения с пользовательскими данными.

такВ настоящее время я сохраняю данные json в свойстве модели после преобразования в массив, но это так досадно, потому что каждая модель теперь имеет строку 500–1000!

Интересно, есть ли дизайн?шаблон или что-то вроде этого, что облегчает связь этих данных с моделью из другого файла?

, например, наличие модели, целью которой является получение данных из базы данных, и наличие объекта, который связан с этой моделью иУ меня есть фиксированные данные json.

Кстати, я использую Laravel Framework, а мои модели - Eloquent ORM.

Пример:

  class Building {
  protected $table = "buildings";

  //this data is so huge, but i need it to be related to this model so that i can access it from here.
  static $buildings = [
      'Castle' =>
            [
                'name' => 'Castle',
                'objectPath' => '/storage/3D/Land/models/Castle/CastleLevel1.fbx',
                'renderPath' => '/storage/3D/Land/models/Castle/Castle.png',
                'price' => 1000,
                'type' => 'castle',
                'levels' =>[
                    [
                        'upgradeTime' => 100,
                        'upgradeCost' => 100,
                        'requirements' => null
                    ],
                    [
                        'upgradeTime' => 100,
                        'upgradeCost' => 100,
                        'requirements' => null
                    ],
                ]
            ],
      // and so on ..
      ]

    function coordinates()
    {
        return $this->morphOne(Coordinates::class, 'objectable');
    }

    //some functions here which relate this model to another models
}

1 Ответ

0 голосов
/ 04 мая 2019

Если вы используете Mysql в качестве реляционной СУБД, вы можете использовать тип данных JSON .MySQL поддерживает собственный тип данных JSON начиная с версии 5.7.8.Собственный тип данных JSON позволяет хранить документы JSON более эффективно, чем текстовый формат JSON в предыдущих версиях.Если вы используете предыдущие версии Mysql, то текстовый тип данных был бы полезен, и единственное, что вам нужно, это функция `` getCastle () `` `, например, в вашей модели для извлечения и преобразования ваших данных в набор данных, который вам нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...