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

  1. registros de llamadas entrantes del usuario durante 1 mes
  2. incming registros de SMS del usuario durante 1 mes
  3. Llamadas salientes registros del usuario durante 1 mes
  4. 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

¿Fue útil?

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.

Considere este ejemplo - tomado de almacenamiento de datos - es una estrella normal Kimball. Muy simplificado modelo, pero estas cuatro tablas cubren sus necesidades descritas, y mucho más.

telecom_model_01

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top