Effectivement c'est largement possible de faire ça avec une base relationnelle. Changer les champs et la structure à chaud, etc
Le NoSQL n'apporte rien de révolutionnaire, c'est différent, prévu pour le schéma libre (les documents d'une collection (entendre table) peuvent être tous différent) et ça le fait bien
Dans les SGBD classique (MySQL en tout cas) pour chercher dans une colonne remplit de texte (xml ou Json par exemple) c'est du fulltext (ou like & co) et pour l'utilisation que j'en fais ce n'est pas précis.
Par exemple je stock direct les tags dans les articles :
$Article->find(array('tags' => 'mon tag'))->sort(array('published' => -1));
Si le champ "tags" n'existe pas dans certains documents je ne vais pas me prendre une erreur vue que c'est un fonctionnement normal de la chose.
idem pour les commentaire :
$Article->find(array('comment.$.author' => 'toto'))->limit(10);
On peut aussi chercher avec une regex.
Monter un cluster se fait assez simplement, bref c'est une question de goût et ce n'est pas comparable. Comme tu dis les SGBDR sont mieux équipés pour le traitement de données, tout dépend du besoin.
Partager