J'ai besoin de stocker les questions et réponses dans une base de données. Les questions seront d'une à deux phrases, mais les réponses seront longues, au moins un paragraphe, probablement plus.
La seule façon que je sache de le faire en ce moment est une base de données SQL. Cependant, je ne pense pas que ce soit une bonne solution car, pour autant que je sache, ces bases de données ne sont pas utilisées pour des données de ce type ou de cette taille. Est-ce la bonne façon de procéder ou existe-t-il une meilleure façon de stocker ces données? Existe-t-il un meilleur moyen que de stocker des chaînes brutes?
database
database-design
gsingh2011
la source
la source
Réponses:
Mongodb est génial, mais vous connaissez SQL. Il n'y a rien de mal à stocker des réponses longues dans les champs. Vous pouvez stocker des images ou même des fichiers en SQL. Je pense que la taille maximale du champ est de 2 Go.
Je suis presque certain que cette réponse elle-même est stockée quelque part dans un champ de table.
Quant à leur présence par milliers, pas de problème. Même des millions ne devraient pas être un problème. Vous pourriez envisager d'utiliser l'indexation de texte intégral si vous recherchez des mots clés ou quelque chose dans le champ. Mais j'essaie de ne pas optimiser jusqu'à ce que je vois un problème. Les ordinateurs sont bon marché, le stockage est essentiellement gratuit.
la source
Il n'y a aucun problème à stocker du texte long dans des bases de données (SQL ou autre). C'est ainsi que pratiquement chaque entrée de blog (pensez Wordpress), article de presse et message de forum (pensez phpbb) sur Internet est stockée. Je ne connais pas les détails spécifiques de la configuration de l'échange de pile, mais je suis sûr que votre question est également stockée dans une base de données. La plupart des bases de données SQL ont un
TEXT
type de champ ou l'équivalent uniquement dans le but de stocker des données textuelles de n'importe quelle longueur. Beaucoup ont également des systèmes de recherche de texte intégral en place.Prenez des décisions techniques basées sur les connaissances techniques et la compréhension, pas sur les sentiments.
la source
Oui, c'est la bonne façon de procéder. Stocker des chaînes dans une base de données SQL est ce que vous voulez faire. Une de mes tables dans la base de données contient plus d'un gig de données en texte brut et fonctionne très bien.
Si vous êtes inquiet à propos de l'espace de stockage, n'oubliez pas qu'il est bon marché!
Si vous êtes préoccupé par les performances - ne vous inquiétez pas, une bonne base de données peut évoluer (ou augmenter) pour autant de données que vous souhaitez y ajouter.
La dernière chose que vous voulez faire est de commencer à l'optimiser maintenant pour le plaisir (compresser les chaînes avant de les mettre dans la base de données ou quelque chose de fou) avant que cela ne devienne réellement un problème. Vous vous donnez simplement plus de travail.
la source
Il n'y a aucun problème à stocker de grandes chaînes ou des données binaires. J'ai travaillé avec une base de données avec plus d'un téraoctet de données binaires et j'ai très bien fonctionné (postgres) et la seule mauvaise chose était le temps de sauvegarde.
La grande question est: "Aurez-vous besoin de faire des recherches constantes dans ce texte?"
Si vous allez rechercher des chaînes dans le texte, vous pouvez penser à une solution d'index:
la source