Se connecter

Informatique

Création de sites web

Sujet : Quel Database pour un tchat ?
1
Azimut88
29 juin 2021 à 20:26:17

Je suis un peu perdu, j'aimerais faire un site web de vente seconde main avec un tchat général mais je suis pas du tout vers quoi partir pour le stockage (on doit pouvoir envoyer des photos dedans), vous savez quels outils utiliser sans devoir payer trop cher ? Je compte utiliser angular pour le frontend et express pour le backend

Le_Tryall
30 juin 2021 à 13:55:40

Pour les photo, il est vraiment préférable de ne pas passer par une base de données (même si c'est techniquement faisable).

Lorsque qu'un utilisateur envoie une photo, ton serveur peut la stocker sur dans les fichiers locaux où se trouve ton application, ou bien tu peux passer par une méthode de stockage Cloud comme Amazon S3, DigitalOcean Storage ou d'autres équivalents.

Pour les messages tu peux utiliser n'importe quoi (Mysql, MongoDB, PostgresSQL).

Azimut88
30 juin 2021 à 14:02:25

Le 30 juin 2021 à 13:55:40 :
Pour les photo, il est vraiment préférable de ne pas passer par une base de données (même si c'est techniquement faisable).

Lorsque qu'un utilisateur envoie une photo, ton serveur peut la stocker sur dans les fichiers locaux où se trouve ton application, ou bien tu peux passer par une méthode de stockage Cloud comme Amazon S3, DigitalOcean Storage ou d'autres équivalents.

Pour les messages tu peux utiliser n'importe quoi (Mysql, MongoDB, PostgresSQL).

Et firebase c'est pas bien ? On m'a dit que c'était simple d'utilisation

boucif
30 juin 2021 à 20:28:18

Firebase c’est simple mais c’est sûrement un des services les plus chère si t’as peu d’appel et de données ça devrait aller

Nuagedecube
01 juillet 2021 à 11:52:35

Un t'chat n'a pas besoin d'une base de données, un fichier texte suffit et c'est un projet intéressant

TidoDaWiseOlMan
01 juillet 2021 à 21:06:44

Le 01 juillet 2021 à 11:52:35 :
Un t'chat n'a pas besoin d'une base de données, un fichier texte suffit et c'est un projet intéressant

OK champion. Le prochain message c'est quoi ? Les SGBD ne servent à rien ?

Azimut88
02 juillet 2021 à 01:08:47

Le 01 juillet 2021 à 11:52:35 :
Un t'chat n'a pas besoin d'une base de données, un fichier texte suffit et c'est un projet intéressant

"on doit pouvoir envoyer des photos dedans"
Donc oui il faut une BD pour les stocker

Et pour les textes je trouve ça plus propre d'utiliser un BD, personne ne conseillerait d'utiliser un fichier texte...

VinkingBanni
02 juillet 2021 à 06:04:53

Le 02 juillet 2021 à 01:08:47 :

Le 01 juillet 2021 à 11:52:35 :
Un t'chat n'a pas besoin d'une base de données, un fichier texte suffit et c'est un projet intéressant

"on doit pouvoir envoyer des photos dedans"
Donc oui il faut une BD pour les stocker

Et pour les textes je trouve ça plus propre d'utiliser un BD, personne ne conseillerait d'utiliser un fichier texte...

Euh non pas besoin de bdd pour les images...

Mynameisflash
02 juillet 2021 à 11:10:50

Le 01 juillet 2021 à 11:52:35 :
Un t'chat n'a pas besoin d'une base de données, un fichier texte suffit et c'est un projet intéressant

Tu me tues toi je sais jamais si tu trolls ou pas :rire:

Azimut88
02 juillet 2021 à 13:37:21

Le 02 juillet 2021 à 06:04:53 :

Le 02 juillet 2021 à 01:08:47 :

Le 01 juillet 2021 à 11:52:35 :
Un t'chat n'a pas besoin d'une base de données, un fichier texte suffit et c'est un projet intéressant

"on doit pouvoir envoyer des photos dedans"
Donc oui il faut une BD pour les stocker

Et pour les textes je trouve ça plus propre d'utiliser un BD, personne ne conseillerait d'utiliser un fichier texte...

Euh non pas besoin de bdd pour les images...

Et tu les stockes où ? Sur l'espace mémoire de l'hébergement qui dépasse pas quelques Go ?

VinkingBanni
02 juillet 2021 à 14:45:32

Et tu crois que l'espace des db est magique aussi ?

Quelle que giga suffit largement... tu crois quoi ? En plus c'est un tchat pas un forum. Ya encore plus simple c'est l'envoi au client direct comme pour les message pas besoin de db.

Enfin bref ... aucune raison de stocker des image en blob

Azimut88
02 juillet 2021 à 14:47:48

Le 02 juillet 2021 à 14:45:32 :
Et tu crois que l'espace des db est magique aussi ?

Quelle que giga suffit largement... tu crois quoi ? En plus c'est un tchat pas un forum. Ya encore plus simple c'est l'envoi au client direct comme pour les message pas besoin de db.

Enfin bref ... aucune raison de stocker des image en blob

Comment ça l'envoie direct au client ? Où sont stocké les photos d'un tchat général sur lequel plusieurs utilisateurs parlent et en envoient dis moi ?

Le_Tryall
02 juillet 2021 à 16:11:38

Les bases de données sont performantes pour trouver des informations précises contenues dans des tableaux (SQL) ou des objets plus "libres" (NoSQL) car elles utilisent des techniques pour optimiser les recherches (Caches, indexes, différentes stratégies pour les query).

Sauf que stocker des images (plusieurs MB parfois) sur une base de données, tu risques de toucher rapidement à des limites techniques qui n'ont pas été prévues par le moteur de la DB. MongoDB par exemple à une limite de quelques Mégabits pour chaque objet. Tu peux notamment exploser la mémoire de ton serveur à cause de ça (exploser dans le sens où elle est à 100% tout le temps, ralentissant ainsi ta DB).

Alors le meilleur moyen, c'est de les stocker directement sur ton serveur (comme sur ton Windows où tu mets tes fichiers dans un dossier). Tu peux ensuite configurer ton serveur Web (Nginx, Apache) afin qu'il puisse servir tes documents en fonction de l'URL utilisée.

Par exemple si l'utilisateur demande au serveur sur l'adresse "http://monserveur.fr" l'URL "images/monchat.png" (donc l'URL complète sera "http://monserveur.fr/images/monchat.png" alors ton serveur va comprendre qu'il faut récupérer l'image présente dans un fichier bien spécifique et ensuite le servir à l'utilisateur.

Il existe bien évidemment des techniques pour optimiser ce processus, comme l'utilisation d'un cache, d'un CDN. Tu peux aussi configurer ton serveur web pour demander un mot de passe, ou l'authentification de l'utilisateur pour accéder à une ressource.

Les services Amazon S3, Firebase ou encore DigitalOcean Storage fonctionnent sur ce principe, mais ils simplifient toute une partie pour éviter que tu aies à tout configurer toi-même.

Pour revenir au problème du tchat, lorsqu'un utilisateur publie une photo sur le tchat, dans ta base de données tu va uniquement stocker l'information "<img src="images/monchat.png"/>" ou un équivalent pour dire aux navigateurs qui affichent le tchat de télécharger et afficher la photo à l'adresse en question. Pas besoin de stocker la photo entière dans ton message.

VinkingBanni
02 juillet 2021 à 18:17:45

Ta aussi l'exemple de WhatsApp qui envoie la conversation et les fichiers à tous les utilisateurs.
Défait qui sont stocké en local la conversation dans un fichiers et les photo dans un dossier propre

CryptoCipher
18 juillet 2021 à 12:00:24

Une base de données peer-to-peer distribuée qui utilisent le protocole IPFS.

https://orbitdb.org
https://github.com/orbitdb

Hejdkchhhek
21 juillet 2021 à 20:25:49

Pour revenir au problème du tchat, lorsqu'un utilisateur publie une photo sur le tchat, dans ta base de données tu va uniquement stocker l'information "<img src="images/monchat.png"/>" ou un équivalent pour dire aux navigateurs qui affichent le tchat de télécharger et afficher la photo à l'adresse en question. Pas besoin de stocker la photo entière dans ton message.

Je te rejoins sur tous les points, je ne vais rien rajouter et comme l'ont dit les VDD le stockage des images dans un dossier sur le serveur est une bonne option. En revanche je me permets de faire une remarque sur un point (en gras)

Il vaudrait mieux stocker uniquement le nom du fichier et son extension dans la BDD. Par exemple "chaton_mignon.jpg"

Et ne pas mettre l'URI complète, ou pire du HTML car si un jour le dev décide de changer le chemin ou modifier la balise HTML (une classe CSS par exemple) ça risque d'être compliqué si ces détails sont enregistrés en dur dans la BDD. :ok:

FionDeTonPatron
24 juillet 2021 à 18:30:38

mysql/mariadb, toujours, on ne le répètera jamais assez

boucif
24 juillet 2021 à 22:39:26

Le 24 juillet 2021 à 18:30:38 :
mysql/mariadb, toujours, on ne le répètera jamais assez

C’est sûrement une des bdd les moins performantes et moins respectueuses des standards sql.
Vaut mieux prendre postgres en gratuit

1
Sujet : Quel Database pour un tchat ?
   Retour haut de page
Consulter la version web de cette page