Отказ от ответственности: Рассматриваемое программное обеспечение, в котором использовалось это решение, использовалось только двумя людьми, одним из которых был я. Только у одного из этих двоих был доступ на запись – тоже у меня. Это решение никогда не было бизнес-решением и никогда не использовалось в производстве.
Довольно давно я писал программное обеспечение на PHP для Интернета, которое должно было использовать базу данных. Я хотел разработать программное обеспечение как можно более портативным, чтобы не было слишком много хлопот при переходе к другому поставщику. MySQL был слишком велик для того, что я хотел, и, хотя SQLite сам по себе мощный, я решил, что он лучше подойдет для моих нужд.
Иногда при написании программного обеспечения вы сталкиваетесь с проблемой. Обычно существует несколько способов ее решения. Моя проблема заключалась в том, что я не мог использовать SQLite в своем PHP-приложении, так как мой хостинг-провайдер не разрешил мне его установить и не стал бы устанавливать сам.
Решением 1 было бы переключиться на другого хостинг-провайдера, который поддерживает SQLite, и запустить программу там. Решением 2 будет поиск другой системы баз данных, которая вообще не требует установки. И решение 3 было тем, что я решил сделать: написать свое собственное решение для базы данных.
Хотя у этого есть некоторые очень явные недостатки, такие как затраты времени, у него есть два основных преимущества. Во-первых, вы можете контролировать поведение системы, так как вы пишете ее с нуля. Во-вторых, вы приобретаете большой опыт, написав то, чего никогда раньше не писали.
И вот так родилась Новая база данных , система баз данных, которая поставляется с библиотекой PHP и создает файлы с синтаксисом XML. Программное обеспечение, созданное во время изучения XML, классов и многого другого. Конечно, не лучшая идея для производства, но и не такая уж ужасная для обучения.
P.S.: Этот пост был немного изменен после первых 24 часов, реагируя на некоторые комментарии.
Оригинал: “https://dev.to/nitricware/why-i-wrote-my-own-database-system-ci9”