Доброй ночи. Подскажите пожалуйста. У меня есть MySQL таблица A. В этой таблице есть поле A1. В этом поле хранятся данные в JSON. Где правильнее будет декодировать это значение?
Допустим есть таблица
Tasks
id (int) | name (text) | params (text/json)
1 Вариант
Получаем данные из таблицы и декодируем поле params вручную только когда понадобятся его значения
Например:
$query = mysql_query('SELECT * FROM `tasks`');
while($task = mysql_fetch_assoc($query))
{
$taskParams = json_decode($task['params']);
echo $taskParams['time_start'];
}
2 Вариант
Получаем данные из таблицы, создаём объект для каждой строки, который автоматически обработает поля, что бы не делать это постоянно вручную
Например:
class Task
{
public $id;
public $name;
public $params;
function __construct($task)
{
$this->id = $task['id'];
$this->name = $task['name'];
$this->params = json_decode($task['params']);
}
}
$query = mysql_query('SELECT * FROM `tasks`');
while($taskOriginal = mysql_fetch_assoc($query))
{
$task = new Task($taskOriginal);
echo $task->params['time_start'];
}
Это простейшие примеры, что бы иметь представление.
Мне второй вариант больше нравится. Как бы сделали вы?