Tel que je le comprends, le but de l'exercice est que tu réalises une solution de stockage de données qui ne soit pas un SGBDR (certainement pour te faire mieux comprendre l'utilité et les problématiques du travail réalisé par ce dernier).
L'énoncé ne précise pas à quel point ton moteur doit être relationnel et ne semble pas imposer de gérer plusieurs tables, ce qui te facilite d'autant les choses (Une seule table à gérer est bien plus simple).
Une solution pourrait être le stockage dans un fichier texte (1 par table). Une ligne du fichier texte correspondant à un enregistrement, (mais il faudra choisir un caractère de fin d'enregistrement particulier pour éviter tout conflit avec une fin de ligne stockée dans un champ), et les champs y sont aussi séparés par un (autre) caractère spécial. L'intérêt du fichier texte est qu'il te permettra de vérifier facilement que tout se passe bien. La pire des choses qui puisse arriver serait une corruption des données suite à un bug dans le moteur, c'est sur ce point qu'il te faudra être vigilant.
Indice : Le format CSV, facilement manipulable en PHP avec les fonctions qui vont bien, peut correspondre à cette problématique.
Pour concevoir l'api pour manipuler cette "table", tu peux imiter les concepts existants pour les SGBD :
- 1/ Connexion (ouverture du fichier)
- 2/ Opération[s] : select(), insert(), delete() (à toi d'imaginer les paramètres qui vont bien)
- 3/ Déconnexion, parcequ'on est des gens propres
