peut on inserer un tableau dans un champ

peut on inserer un tableau dans un champ - SQL/NoSQL - Programmation

Marsh Posté le 29-10-2004 à 14:17:24    

il me semble que oui mais je sais pas quel est la syntaxe dans la requete de creation et d'insertion aidez moiplease c urgent!!!!

Reply

Marsh Posté le 29-10-2004 à 14:17:24   

Reply

Marsh Posté le 29-10-2004 à 16:16:30    

Pas avec un SGBD-R classique, du moins, pas dans un champ...
 
T'as deux solutions :
1/ La propre : Te permet de faire des requêtes ensuite sur les valeurs de ton tableau, et ce dernier peut avoir autant de lignes que tu veux.
 
Table "DONNEE" qui est ta table principale. Clé "d_id" auto-incrément
Table "TABLEAU" qui est la table qui va recevoir le tableau de valeurs. Clé "d_id, t_id" avec d_id FK sur DONNEE.d_id et t_id autoincrément.
 
Tu insères les données dans DONNEE, puis tu insert dans TABLEAU les valeurs de ton tableau (avec plusieurs INSERT) en reprenant pour d_id la nouvelle clé que tu as généré pour DONNEE.
 
2/ La méthode goret : Ne te permet pas de faire des requêtes sur les données du tableau, et tu es bloqué par la taille du champ qui contient les lignes du tableau.
 
Une table DONNEE, avec un champ tableau de type varchar.
Dedans, tu stockes ton tableau sous forme CSV (Coma Separated Values), par exemple "12,5,49,25" pour un tableau contenant une ligne 12, une ligne 5, une ligne 49 et une ligne 25.
Tu peux ensuite récupérer, dans le programme qui utilise la base, les valeurs de se tableau en faisant un SPLIT sur le caractère "," dans ton champ. Mais c'est particullièrement.
 
Une autre solution consiste à stocker dans un champ de type "text" (ou blob, long ou autre, selon le SGBD) au format XML : <tab><line>12</line><line>5</line><line>49</line><line>25</line></tab>"
Certains SGBD (Oracle 9i et ultérieurs par exemple) sont capable d'aller retrouver les infos dans ce flux XML. Mais cette solution ne faut guère mieu que la précédente, il faut dans tous les cas privilégier la première solution.


Message édité par Arjuna le 29-10-2004 à 16:18:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed