Каков наилучший способ сохранить и редактировать массив в базе данных (JSON, сериализации или текст)

0

Я хотел бы добавить информацию моим клиентам, например, количество действий, которые они имеют право выполнять

Я прочитал в другом сообщении, что мы можем использовать функцию serialize() или json_encode() для сохранения массива в базе данных

Но почему бы не сохранить его прямо в текстовом формате следующим образом: ["view", "edit", "delete", "save"]?

С функциями json и serialize, как добавлять или удалять данные? Например, с json_encode, я должен сделать данные json_decode() и сделать unset() или array_push() затем json_encode()? Или есть лучший способ сделать это?

  • 1
    «Но почему бы не сохранить его непосредственно в текстовом формате, как этот» - ну, JSON или PHP-формат, создаваемый serialize являются текстовыми форматами, которые можно легко преобразовать в / из собственных массивов PHP… Таким образом, вы можете манипулировать массивами PHP с помощью функций массива и сохранять результаты в / из текста. Мне непонятно, чего мне здесь не хватает ...?
  • 1
    Поэтому вам следует рассмотреть возможность внесения изменений в структуру базы данных и сохранения этих данных в отдельной таблице, элементы которой связаны с информацией о владельце. Попробуйте несколько руководств по дизайну базы данных, прежде чем идти дальше
Показать ещё 1 комментарий
Теги:
arrays

1 ответ

5

Я прочитал в другом сообщении, что мы можем использовать функцию serialize() или json_encode() для сохранения массива в базе данных

Это не совсем точно. Вы можете использовать эти функции для преобразования массива в строку. Затем вы можете сохранить строку в поле базы данных.

Это не хорошая идея, так как это означает, что вы не можете разумно искать данные в массиве. Вы должны использовать реляционный характер баз данных и настраивать реальные (например, многие-ко-многим) отношения.

Но почему бы не сохранить его прямо в текстовом формате следующим образом: ["view", "edit", "delete", "save"]?

Поскольку массив не является текстовым форматом (и если это текст, то это результат, который даст json_encode).

С функциями json и serialize, как добавлять или удалять данные? Например, с json_encode, я должен сделать данные json_decode() и сделать unset() или array_push(), а затем json_encode()?

да

Или есть лучший способ сделать это?

См. Предыдущую заметку об отношениях.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню