2009-11-18 2 views
3

Есть 2 миллиона пользователей каждый пользователь имеет 4 таблицы. данные в 4 таблицах не будут добавлены и будут оставаться исправленными.Как создать эту базу данных mysql

Структура каждой таблицы пользователей будет такой же.

Для хранения данных этих пользователей в mysql мне нужно создать базу данных.

Мне нужно создать 2 миллиона баз данных с 4 таблицами?

любая помощь оценили

в 4 таблицы являются

  1. входящие записи вызовов от пользователя в течение 1 месяца
  2. incming смс записи пользователя на 1 месяц
  3. исходящие вызовы записей пользователя на 1 месяц
  4. исходящие sms записи пользователя на 1 месяц

таблицы вызовов будет иметь следующую структуру

время дата обвинения продолжительность номер

входящие смс будут следующие структуры

дата время количество

исходящие смс будет следующая структура

номерного удостоверения

+0

Что "данные" именно в 4-х таблиц? Пожалуйста, дополните. – Asaph

+1

О, хороший господин. Почему, по вашему мнению, каждый пользователь должен иметь четыре таблицы? Нам нужны более подробные сведения о ваших требованиях. –

+0

wtf, у вас есть более подробная информация? –

ответ

9

Это антипаттерн SQL, который я называю Метаданные Tribbles. Они выглядят симпатичными и дружелюбными, но вскоре они выходят из-под контроля.

Как только вы слышите фразы, начинающиеся «У меня одинаковая таблица за ...» или «У меня одинаковый столбец на ...», то у вас, вероятно, есть метаданные Tribbles.

Вы должны начать с создания одной базы данных с четырьмя таблицами и добавить атрибут user_id к каждой из четырех таблиц.

Существуют исключения, в которых вы хотели бы разбить на отдельные базы данных для каждого пользователя, но это исключения. Не ходите туда, если вы не знаете, что делаете, и можете доказать, что это необходимо.

+0

Мне нравится имя «Метаданные триблей». Это само по себе стоит поднять. –

0

Вам просто нужна таблица для пользователей, table1, table2, table3, table4. тогда, когда вам необходимо ввести данные в table1 просто включить users_id в table1

TABLE 1        USERS 

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

Вы можете подключить затем с помощью INNER JOIN его table1.usersID = users.ID Все таблицы должны иметь usersID (надейтесь таблицу пользователей, которая имеет ID) для подключения их

Надеется, что вы получите точку

3

нет, вам не нужны 2 миллиона базы данных с 4-х таблицами каждый. Вам просто нужна 1 база данных, 4 таблицы и уникальный идентификатор пользователя для каждого пользователя.

Что-то вроде:

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

address table 
| user_id (foreign key) | address | 

whatever table 
| user_id (foreign key) | whatever | 

Я должен задаться вопросом, почему вам нужно 4 таблицы для каждого пользователя? Надеюсь, вы понимаете основы того, что я пытаюсь передать здесь.

4

Большинство серверов баз данных (и файловых систем) не будут обрабатывать экземпляры, требующие большого количества отдельных баз данных. Я предполагаю, что на самом деле вам нужны четыре таблицы, каждая из которых содержит строку для каждого пользователя. Это абсолютно разумное требование.

0

Нет, вам не нужны 2 миллиона баз данных!

Вам действительно нужно 2 миллиона экземпляров для 4 таблиц.

Конечно, вы должны создать реляционную базу данных, чтобы каждая таблица имела реляционный атрибут для других таблиц.

1

Рассмотрите этот пример - заимствованный из хранилища данных - это простая звезда Кимбалла. Очень упрощенная модель, но эти четыре таблицы охватывают ваши описанные потребности и многое другое.

telecom_model_01