Question

il y a 2 millions d'utilisateurs chaque utilisateur dispose de 4 tables. les données de 4 tables ne va pas être joint et resteront fixe.

la structure de chaque table des utilisateurs sera le même.

Pour stocker les données de ces utilisateurs dans une base MySQL, je dois concevoir une base de données.

dois-je créer 2 millions de bases de données chacune avec 4 tables?

toute aide appréciée

les 4 tables sont les

  1. enregistrements d'appels entrants de l'utilisateur pendant 1 mois
  2. incming enregistrements sms de l'utilisateur pendant 1 mois
  3. appels sortants dossiers de l'utilisateur pour 1 mois
  4. enregistrements sms sortants de l'utilisateur pour 1 mois

les tables appels auront la structure suivante:

Numéro dates, l'heure frais de durée

les sms entrant aura la structure suivante:

numéro de date heure

le sms sortant aura la structure suivante:

frais de numéro de date et heure

Était-ce utile?

La solution

Ceci est un antimodèle SQL que j'appelle Les métadonnées Tribbles. Ils ont l'air mignon et amical, mais bientôt ils se multiplient hors de contrôle.

Dès que vous entendez des phrases commençant par « je une table identique par ... » ou «J'ai une colonne identique par ... » alors vous avez probablement des métadonnées Tribbles.

Vous devriez commencer par faire une base de données avec quatre tables, et ajoutez un attribut user_id à chacune des quatre tables.

Il y a des cas d'exception où vous voudriez scinder en bases de données séparées par utilisateur, mais ils sont exceptions . Ne pas y aller, sauf si vous savez ce que vous faites et peut prouver qu'il serait nécessaire.

Autres conseils

La plupart des serveurs de base de données (et) les systèmes de fichiers ne traitera pas des cas nécessitant que de nombreuses bases de données distinctes. Je suppose que ce que vous avez réellement besoin sont quatre tables, chacune contenant une ligne pour chaque utilisateur. C'est une exigence tout à fait raisonnable.

Non, vous n'avez pas besoin de 2 millions de bases de données avec 4 tables chacune. Vous avez juste besoin d'une base de données, 4 tables, et l'ID utilisateur unique pour chaque utilisateur.

Quelque chose comme:

users table:
| user_id (primary key) | username |

address table
| user_id (foreign key) | address  |

whatever table
| user_id (foreign key) | whatever |

Je me demande pourquoi vous avez besoin de 4 tables par utilisateur? Espérons que vous comprenez les bases de ce que je suis en train de transmettre ici bien.

Considérez cet exemple - emprunté à l'entreposage de données - c'est une étoile ordinaire Kimball. Modèle très simplifié, mais ces quatre tableaux couvrent vos besoins décrits, et plus encore.

Vous avez juste besoin d'une table pour les utilisateurs, table1, table2, table3, table4. puis quand vous devez saisir des données pour table1 il suffit d'inclure le users_id à table1

TABLE 1                              USERS

ID   usersID     amount   quantity   ID   Name
1       1           200      2        1   John
2       1           400      3      

Vous pouvez vous connecter en utilisant ensuite INNER JOIN par son table1.usersID = users.ID Tout table doit avoir UserSid (attendre table des utilisateurs qui a ID) pour les connecter

Je espère que vous obtenez le point

Non, vous n'avez pas besoin de 2 millions de bases de données!

Vous avez besoin en fait 2 millions de cas pour 4 tables.

Bien sûr, vous devez concevoir une base de données relationnelle telle que chaque table a un attribut relationnel pour d'autres tables.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top