что является целью $table->json('options');
как тип поля базы данных базы данных базы данных builder.I пробовал искать трудно, но не смог получить никакой соответствующей информации об этом. примерНазначение и реализация типа json field в построителе схемы laravel
ответ
Некоторые базы данных - PostgreSQL, являющийся основным примером, имеет JSON-дружественные типы данных (которых в настоящее время не хватает MySQL - он будет просто хранить в качестве типа данных TEXT
). Это может быть удобно для работы с данными (например, пример options
, который вы цитируете), который может содержать большое количество не имеющих схемы или слабо структурированных данных.
- http://www.postgresql.org/docs/9.4/static/datatype-json.html
- http://www.postgresql.org/docs/9.3/static/functions-json.html
Вместо того, более 100 столбцов для кучки включения/выключения опции для модели, вы можете хранить их в объект JSON в базе данных.
Иногда это полезно, даже если MySQL хранит данные как JSON.
Если вы создаете приложение с пользовательскими настройками, когда вам требуются только несколько пользовательских настроек для ваших приложений, несколько столбцов в вашей таблице пользователей или настроек прекрасно справятся с этой задачей. Но как насчет того, когда у вас есть десятки и десятки вариантов конфигурации? Ну, в этих случаях вы можете рассмотреть кодирование немного JSON и сохранить его в одном столбце.