Подтвердить что ты не робот

MySQL против JSON - Почему?

Я разрабатываю небольшое веб-приложение/игру. Что было бы лучше: таблицы MySQL или json файлы? Они оба хранят информацию. Они могут обрабатываться PHP. Каковы преимущества/недостатки?

Вот что я имею в виду:

username | password
-------------------
seefour  | abc123

против.

{
  "username":"seefour",
  "password":"abc123"
}

РЕДАКТ: Вау, прошло всего три года с тех пор, как я задал этот вопрос, и удивительно видеть, насколько я созрел с тех пор, как я задал этот вопрос. Из будущего меня в прошлое меня, вот почему они не работают. (В случае, если кто-нибудь наивный, как я в то время, может ссылаться на это)

Раньше я думал, что эти два являются взаимозаменяемыми, потому что они оба были очень хорошими способами хранения информации, хотя хранение и использование файлов JSON мне было легче в то время. Базы данных - это отдельные части программного обеспечения, которые быстрее извлекают данные и не раздуваются с течением времени. Кроме того, перенос всех данных в один или два файла приводит к тому, что вы можете легко украсть или потерять ваши данные, поскольку база данных намного безопаснее. По сути, данные не должны быть частью вашего кода; это должен быть отдельный элемент, с которым работает ваш код.

Кроме того, вы узнаете о хэшировании и засовывании через пару лет после этой строки, поэтому не храните пароли в виде обычного текста!

4b9b3361

Ответ 1

Чтобы быть действительно тупым, MySQL - это база данных, а JSON - нет, поэтому правильный ответ - это MySQL, без колебаний. JSON - это просто язык, и это даже не так. JSON никогда не был предназначен для обработки каких-либо параллельных соединений или любых манипуляций с данными, поскольку его собственная функция - представлять данные, а не управлять ими.

Итак, переходите к MySQL для хранения данных. Затем вы должны использовать некоторый язык программирования для чтения этой базы данных и отправлять эту информацию в виде JSON, а не хранить что-либо в JSON.

Если вы храните данные в файлах, будь то в формате JSON или что-то еще, у вас появятся всевозможные проблемы, о которых люди перестали беспокоиться, поскольку базы данных начали использоваться для одного и того же. Ограничения по размеру, блокировки, назовите его. Это достаточно хорошо, когда у вас есть один пользователь, но в тот момент, когда вы добавляете больше из них, вы начнете решать так много проблем, что вы, вероятно, закончите, написав весь механизм базы данных, чтобы обрабатывать файлы для вас, а все время мог бы просто использовать фактическую базу данных.

Ответ 2

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

Кроме того, команда MySQL приложила много усилий для разработки таких функций, как репликация, параллельный доступ к данным, соответствие ACID и целостность данных.

Представьте, если вы добавите новое поле, которое требуется в любой структуре данных, которую вы храните. Если вы храните в файлах JSON, у вас должен быть какой-то процесс, который открывает каждый файл, добавляет поле, а затем сохраняет его. Сравните это с трудностью использования ALTER TABLE с значением DEFAULT для поля. (Немного надуманного примера, но сколько хаков вы хотите оставить в своей кодовой базе для обработки старых данных?)

Ответ 3

Эти 2 не очень сопоставимы.

MySQL хранит данные в базе данных или фактически является базой данных. JSON хранит данные в формате, который должен быть передан и от сервера к клиенту. Javascript/jquery может использовать JSON в качестве объектов данных, но они существуют только на стороне клиента на протяжении всей страницы.

Итак, если вы хотите хранить данные как JSON (не рекомендуется), вам, вероятно, придется хранить их в виде текстовых файлов для сохранения данных.

Вы должны хранить данные в базе данных. Используйте функции для преобразования его в формат JSON, а затем передайте его на веб-страницу для использования javascript и представления пользователю.