Я разрабатываю веб-сайт, на котором пользователи смогут сохранять в своем профиле список (массив) элементов (которые они также могут найти на том же веб-сайте и имеют свой собственный идентификатор).
Так я использовал до сих пор в подобных ситуациях:
- Создайте текстовое (текстовое) поле в таблице пользователей в БД и сохраните элементы, разделенные запятыми.
- Чтобы прочитать это поле, используйте метод explode , чтобы получить массив в CakePHP, а затем работать с ним
- Чтобы сохранить массив в БД, используйте метод implode , чтобы преобразовать его в строку и сохранить в поле
Что мне не нравится в этом методе, так это то, что он может действительно усложнить работу с этими списками (добавлять элементы, удалять элементы ...), и вы не можете получить к ним доступ напрямую, всегда есть некоторая предварительная обработка или постобработка, чтобы сделать.
Например, чтобы упростить просмотр определенного элемента в списке одного пользователя и найти других пользователей с таким же элементом в своих списках.
Есть ли лучший способ работы с массивами в CakePHP + MySQL? Я читал о serialize () / unserialize () , но я не думаю, что это будет иметь большое значение по сравнению с другим методом ...
Большое спасибо заранее за любые идеи!