Bonjour à toutes et tous,
Voilà la situation. On souhaite stoquer sur une base de donnée MySQL une liste de personnes avec leurs caractéristiques. L'une des caractéristique sera par exemple une variable valant 1 si la personne est inscrite à une mailing list, et 0 si la personne n'est pas inscrite.
Maintenant, imaginons que l'on souhaite rechercher soit:
- Toutes les personnes inscrites pour les lister
- Toutes les personnes non inscrites pour les lister
Alors en théorie on fera un SELECT * from ... WHERE inscrit=1
ou pour chercher les personnes non inscrites avec un WHERE inscrit=0
Imaginons à présent une architecture différente de la base de donnée, avec deux tables:
- Une table avec toutes les personnes inscrites
- Une table avec toutes les personnes non inscrites
Et là, pour liste les personnes inscrites on fera un SELECT * from table_inscrits
et pour lister les personnes non inscrites on fera un SELECT * from tables_non_inscrits
Dans la première option, on stoque toutes les personnes dans une seule table, et dans la seconde option, on créer 2 tables pour les deux types de personnes.
Et là j'en viens à ma question: la seconde option sera-t-elle vraiment plus rapide pour lister toutes les personnes inscrites (ou non inscrites au contraire)?
En effet, j'ai un problème du genre et j'hésite à créer une table ou deux tables pour lister l'ensemble des personnes... Ceci en sachant qu'à aucun moment il ne faudra faire de rechercher dans l'ensemble des personnes, ce sera toujours
- soit une recherche parmis les inscrits
- soit une recherche parmis les non inscrits
Donc l'idée de créer deux tables permettra-t-elle un gain de rapidité pour les requêtes?
Modifié par Anarianthe (10 Nov 2005 - 21:11)
Voilà la situation. On souhaite stoquer sur une base de donnée MySQL une liste de personnes avec leurs caractéristiques. L'une des caractéristique sera par exemple une variable valant 1 si la personne est inscrite à une mailing list, et 0 si la personne n'est pas inscrite.
Maintenant, imaginons que l'on souhaite rechercher soit:
- Toutes les personnes inscrites pour les lister
- Toutes les personnes non inscrites pour les lister
Alors en théorie on fera un SELECT * from ... WHERE inscrit=1
ou pour chercher les personnes non inscrites avec un WHERE inscrit=0
Imaginons à présent une architecture différente de la base de donnée, avec deux tables:
- Une table avec toutes les personnes inscrites
- Une table avec toutes les personnes non inscrites
Et là, pour liste les personnes inscrites on fera un SELECT * from table_inscrits
et pour lister les personnes non inscrites on fera un SELECT * from tables_non_inscrits
Dans la première option, on stoque toutes les personnes dans une seule table, et dans la seconde option, on créer 2 tables pour les deux types de personnes.
Et là j'en viens à ma question: la seconde option sera-t-elle vraiment plus rapide pour lister toutes les personnes inscrites (ou non inscrites au contraire)?
En effet, j'ai un problème du genre et j'hésite à créer une table ou deux tables pour lister l'ensemble des personnes... Ceci en sachant qu'à aucun moment il ne faudra faire de rechercher dans l'ensemble des personnes, ce sera toujours
- soit une recherche parmis les inscrits
- soit une recherche parmis les non inscrits
Donc l'idée de créer deux tables permettra-t-elle un gain de rapidité pour les requêtes?
Modifié par Anarianthe (10 Nov 2005 - 21:11)