Pergunta

Existem 2 milhões de usuários que cada usuário possui 4 tabelas. Os dados em 4 tabelas não serão anexados e permanecerão fixos.

A estrutura das tabelas de cada usuário será a mesma.

Para armazenar os dados desses usuários no MySQL, tenho que projetar um banco de dados.

Preciso criar 2 milhões de bancos de dados com 4 tabelas?

qualquer ajuda apreciada

as 4 tabelas são o

  1. Os registros de chamadas recebidos do usuário por 1 mês
  2. Incling SMS Registros do usuário por 1 mês
  3. Chamadas de saída registros do usuário por 1 mês
  4. Registros de SMS de saída do usuário por 1 mês

As tabelas de chamadas terão a estrutura seguinte

Data de data do número de taxas de duração

o SMS recebido terá a estrutura seguinte

Número da hora da data

o SMS de saída terá a estrutura seguinte

Data Hora do número cobranças

Foi útil?

Solução

Este é um antipatrind sql que eu chamo Tribles de metadados. Eles parecem fofos e amigáveis, mas logo se multiplicam por controle.

Assim que você ouvir frases começando "Eu tenho uma tabela idêntica por ..." ou "Eu tenho uma coluna idêntica por ...", então você provavelmente tem tributos de metadados.

Você deve começar fazendo um banco de dados com quatro tabelas e adicionar um user_id atribuir a cada uma das quatro tabelas.

Existem casos de exceção em que você deseja dividir em bancos de dados separados por usuário, mas eles são exceções. Não vá para lá, a menos que saiba o que está fazendo e possa provar que seria necessário.

Outras dicas

A maioria dos servidores de banco de dados (e sistemas de arquivos) não lida com instâncias que exigem muitos bancos de dados separados. Acho que o que você realmente precisa são quatro tabelas, cada uma contendo uma linha para cada usuário. Esse é um requisito totalmente razoável.

Não, você não precisa de 2 milhões de bancos de dados com 4 mesas cada. Você só precisa de 1 banco de dados, 4 tabelas e ID de usuário exclusivo para cada usuário.

Algo como:

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

address table
| user_id (foreign key) | address  |

whatever table
| user_id (foreign key) | whatever |

Eu tenho que me perguntar por que você precisa de 4 tabelas por usuário? Espero que você entenda o básico do que estou tentando transmitir aqui.

Considere este exemplo - emprestado da data warehousing - é uma estrela simples de Kimball. Modelo muito simplificado, mas essas quatro tabelas cobrem as necessidades descritas e muito mais.

telecom_model_01

Você só precisa de uma tabela para usuários, Tabela1, Tabela2, Tabela3, Tabela4. Então, quando você precisar inserir dados na Tabela1, inclua o Usuários_id na Tabela1

TABLE 1                              USERS

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

Você pode se conectar e, em seguida, usando a junção interna pela tabela1.usersid = users.id toda a tabela deve ter usuáriosid (espere que a tabela de usuários que tenha id) para conectá -los

Espero que você entenda o ponto

Não, você não precisa de 2 milhões de bancos de dados!

Na verdade, você precisa de 2 milhões de instâncias para 4 tabelas.

Obviamente, você deve projetar um banco de dados relacional para que cada tabela tenha um atributo relacional para outras tabelas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top