Si mes données XML sont très complexes, y a-t-il un moyen de les stocker dans DB?Comment stocker des données XML dans une base de données mysql? Je ne veux pas des clés étrangères comme des fous
12
A
Répondre
26
La façon "régulière" est de stocker XML dans un CLOB (Character Large Object) et MySQL prend en charge CLOB avec 4 types de données:
- TINYTEXT - Une colonne de CLOB d'une longueur maximale de 255 (2 ** 8 - 1) caractères.
- TEXT - Colonne CLOB d'une longueur maximale de 65 535 (2 ** 16 - 1) caractères.
- MEDIUMTEXT - Une colonne de CLOB avec une longueur maximale de 16777215 (2 ** 24-1) caractères.
- LONGTEXT - Une colonne de CLOB avec une longueur maximale de 4,294,967,295 ou 4 Go (2 ** 32 - 1) caractères.
En utilisant l'un ou l'autre dépend de vos besoins.
6
Tout dépend de ce que vous voulez que votre base de données à faire avec le XML.
- Si vous voulez juste pour stocker le document XML pour une récupération ultérieure, il suffit d'utiliser un champ blob ou texte. Vérifiez également le MySQL docs.
- Si vous essayez d'exporter/importer un modèle, utilisez mysqldump.
- Si vous envisagez d'interroger sur XML, vous devriez probablement utiliser une base de données XML native tels que eXist-db à la place.
1
Je vous recommande d'utiliser une base de données qui a un type de données XML natif. Postgres le fera, par exemple. Cela vous facilitera la vie si vous prévoyez de travailler avec XML dans votre base de données.