Je souhaite avoir une colonne dans une base de données pouvant contenir plusieurs entrées. Est-il possible de devoir définir le type de la colonne comme un tableau (tableau de taille fixe ou une collection dynamique) afin qu'il puisse stocker plusieurs entrées.Comment faire un champ d'une base de données en tant que tableau?
Répondre
Si vous avez besoin différentes valeurs à stocker ensemble, dans un seul champ, alors vous serez probablement mieux loti les stocker sous forme d'une chaîne séparée délimiteur des valeurs:
+----------------------------------+ | PRODUCTS | +----------+-----------------------+ | Product | Colors | +----------+-----------------------+ | Notebook | blue,red,green,orange | +----------+-----------------------+
C'est généralement pas ce que tu veux cependant. D'une manière générale, la solution de l'idée est de créer des relations entre les tables. Par exemple:
+---------------+ | PRODUCT | +----+----------+ | ID | Product | +----+----------+ | 1 | Notebook | +---------------+ +---------------+ | COLORS | +----+----------+ | ID | Color | +----+----------+ | 1 | Blue | +---------------+ | 2 | Red | +---------------+ | 3 | Green | +---------------+ +---------------------+ | PRODUCTCOLORS | +-----------+---------+ | ProductID | ColorID | +-----------+---------+ | 1 | 1 | Notebook, Blue +-----------+---------+ | 1 | 3 | Notebook, Green +-----------+---------+
oui, dans une conception relationnelle typique, vous auriez 1: N (1-to-many) entre 1 table et une autre. chaque ligne de la première table représente une collection, chaque ligne de la deuxième table est un élément d'une collection et fait référence à la première table.
une liste séparée par des virgules, sérialisation, ou une chaîne codée URL est aussi une bonne solution que les autres réponses indiquent ...
Non, mais quelle langue côté serveur utilisez-vous?
Si vous utilisez PHP, vous pouvez utiliser
$serializedArray = serialize($myArray);
Et puis insérez cette valeur dans la db. Pour le récupérer, utilisez unserialize()
;
C'est à peu près la même réponse que ci-dessus (avec une chaîne délimitée), mais vous pouvez également enregistrer le texte dans cette colonne en XML. Selon la base de données que vous utilisez, cela peut être facile ou fastidieux.
Comme indiqué ci-dessus, est-ce que vous perdez évidemment n'importe quel aspect de pouvoir gérer l'intégrité des données de votre couche DB (facilement).
- 1. Comment utiliser un champ de base de données int2 en tant que booléen en Java en utilisant JPA/Hibernate
- 2. Objet en tant que tableau
- 3. stocker plusieurs valeurs en tant que binaire dans un champ
- 4. Flex AIR Sqlite en tant que base de données intégrée
- 5. tableau en tant que paramètre
- 6. Demande.Formulaire en tant que tableau
- 7. Sortie en tant que tableau
- 8. Choisir la base de données FILEGROWTH en tant que% ou en tant que Taille fixe
- 9. Comment sauvegarder un tableau bidimensionnel en tant que fichier csv?
- 10. typedef en tant que type de données de base
- 11. Modélisation d'enregistrements de base de données en tant que types
- 12. Objective-C: Comment créer une classe avec un tableau 2d C en tant que champ?
- 13. Comment faire passer un tableau d'objets en tant que paramètre en Java
- 14. Fichier XML en tant que base de données?
- 15. Comment faire pour vider un tableau de pixels en tant que png?
- 16. Logiciel en tant que service - Base de données
- 17. Comment transmettre un tableau en tant que paramètre?
- 18. Comment empêcher WCF d'auto-sérialisation octet-tableau en tant que chaîne codée en base 64?
- 19. comment représenter un arbre de recherche binaire en tant que schéma de base de données?
- 20. django admin: champ de texte en tant que liste d'options
- 21. comment faire un film flash en tant que lien html?
- 22. Flex DataGridColumn avec un tableau d'objets en tant que fournisseur de données
- 23. Arguments Javascript en tant que tableau?
- 24. Lire l'entrée en tant que tableau
- 25. un tableau de chaînes en tant que sélecteur jQuery?
- 26. Passer un tableau en tant que paramètre de fonction JavaScript
- 27. Lecture de Core Audio en tant que tableau de flottants
- 28. Base de données en tant qu'antipattern IPC
- 29. Stockez le fichier de configuration XML dans la base de données en tant que champ ou stockez-en le chemin?
- 30. Comment utiliser la base de données Access avec une requête en tant que tableau croisé dynamique dans Excel
Vous avez répondu avec un grand détail. Vous avez donné une partie de votre temps précieux pour me répondre. Un très grand merci pour ça. –