Bonjour a tous, voila une question que je me pose depuis longtemps.sur la bonne structure d'une base sql.
est il plus optimisé pour une requette select sur une table comprenant des milliers d'enregistrement (propriété de différent titulaires) qu'elle soit structuré comme ceci :
MATABLE_TOUT_TITULAIRE
id_titulaire | donnée | donnée | date | heure | ... |
ou
MATABLE_ID_TITULAIRE
donnée | donnée | date | heure | ... |
donc :
que tout les titulaires soit mélangés
ou au contraire créer une table pour chaque titulaire.
Donc la requette serais soit :
where id_titulaire = 'sonchiffre' | ou | un select from MATABLE_ID_TITULAIRE
ya t'il une différence de performance ? sachant que chaque utilisateur peux avoir rapidement des milliers d'info, la base devra pouvoir supporter des milliers d'utilisateurs.
voici la structure actuelle pour vous aider :
CREATE TABLE `tab_compte_bancaire` (
`id_mouvement` int(10) NOT NULL auto_increment,
`id_titulaire` int(4) NOT NULL default '0',
`id_etablissement` int(4) NOT NULL default '0',
`id_compte` int(4) NOT NULL default '0',
`id_type` int(4) NOT NULL default '0',
`id_categorie` int(4) NOT NULL default '0',
`id_abonnement` int(4) NOT NULL default '0',
`intituler` varchar(255) default NULL,
`montant` decimal(10,2) default NULL,
`date` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id_mouvement`),
KEY `id_etablissement` (`id_titulaire`),
KEY `id_compte` (`id_compte`),
KEY `id_categorie` (`id_categorie`),
KEY `id_abonnement` (`id_abonnement`),
KEY ` id_type_paiement` (`id_type`),
KEY `id_etablissement_2` (`id_etablissement`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Partager