cómo diseñar esta base de datos MySQL
-
20-09-2019 - |
Pregunta
hay 2 millones de usuarios cada usuario tiene 4 mesas. los datos en las tablas 4 no va a ser añadido y permanecerá fijo.
La estructura de cada tablas de los usuarios será el mismo.
Para almacenar los datos de estos usuarios en MySQL que tengo que diseñar una base de datos.
¿Es necesario crear 2 millones de bases de datos, cada uno con 4 mesas?
cualquier ayuda apreció
las 4 mesas son los del
- registros de llamadas entrantes del usuario durante 1 mes
- incming registros de SMS del usuario durante 1 mes
- Llamadas salientes registros del usuario durante 1 mes
- Discos de SMS salientes del usuario durante 1 mes
las tablas llamadas tendrán siguiente estructura
Date tiempo de duración de los cargos número
el SMS entrante tendrá siguiente estructura
fecha de número de tiempo
el sms saliente tendrá siguiente estructura
fecha y hora cargos número
Solución
Este es un anti patrón SQL que llamo Metadatos tribbles. Se ven linda y amable, pero pronto se multiplican fuera de control.
Tan pronto como se oye frases que comienza "tengo una tabla idéntica por ..." o "Tengo una columna idéntica por ...", entonces es probable que tenga metadatos tribbles.
Usted debe empezar por hacer una base de datos con cuatro mesas, y añadir un atributo user_id
a cada una de las cuatro mesas.
Hay casos excepcionales en los que desea desea dividir en bases de datos separadas por usuario, pero son excepciones . No vayas a menos que sepa lo que está haciendo y se puede demostrar que sería necesario.
Otros consejos
mayoría de los servidores de base de datos (y sistemas de ficheros) no manejar casos que requieren que las muchas bases de datos separadas. Supongo que lo que realmente se necesita son cuatro cuadros, cada uno con una fila para cada usuario. Eso es un requisito totalmente razonable.
No, no es necesario 2 millones de bases de datos con 4 mesas cada una. Sólo se necesita 1 base de datos, tablas 4 y el ID de usuario único para cada usuario.
Algo así como:
users table:
| user_id (primary key) | username |
address table
| user_id (foreign key) | address |
whatever table
| user_id (foreign key) | whatever |
Me pregunto por qué necesita 4 mesas por usuario? Esperamos que pueda entender los conceptos básicos de lo que estoy tratando de transmitir aquí, sin embargo.
Sólo se necesita una mesa para los usuarios, tabla1, tabla2, Cuadro 3, Tabla 4. luego, cuando es necesario introducir los datos de la Tabla 1 basta con incluir el USERS_ID a tabla1
TABLE 1 USERS
ID usersID amount quantity ID Name
1 1 200 2 1 John
2 1 400 3
Se puede conectar a continuación, utilizando INNER JOIN por su table1.usersID = users.ID Toda tabla debe tener UserSID (esperar tabla de usuarios que tiene ID) para conectarlos
Esperanza usted consigue el punto
No, no es necesario 2 millones de bases de datos!
En realidad se necesitan 2 millones de casos para 4 mesas.
Por supuesto, debe diseñar una base de datos relacional de tal manera que cada mesa tiene un atributo relacional para otras tablas.