문제

각 사용자에게는 4 개의 테이블이있는 2 백만 명의 사용자가 있습니다. 4 개의 테이블의 데이터가 추가되지 않으며 수정 상태로 유지됩니다.

각 사용자 테이블의 구조는 동일합니다.

이 사용자의 데이터를 MySQL에 저장하려면 데이터베이스를 설계해야합니다.

각각 4 개의 테이블이있는 2 백만 개의 데이터베이스를 만들어야합니까?

모든 도움이 감사합니다

4 개의 테이블은입니다

  1. 1 개월 동안 사용자의 통화 기록
  2. 1 개월 동안 사용자의 SMS 레코드를 넣습니다
  3. 나가는 사람은 1 개월 동안 사용자의 레코드를 호출합니다
  4. 1 개월 동안 사용자의 나가는 SMS 레코드

통화 테이블에는 다음 구조가 있습니다

날짜 시간 번호 기간 요금

들어오는 SMS에는 다음 구조가 있습니다

날짜 시간 번호

나가는 SMS에는 다음 구조가 있습니다

날짜 시간 번호 요금

도움이 되었습니까?

해결책

이것은 내가 부르는 SQL 방지입니다 메타 데이터 트리블. 그들은 귀엽고 친절 해 보이지만 곧 통제 불능 상태가됩니다.

"나는 동일한 테이블이 있습니다 ..."또는 "나는 동일한 열이 있습니다 ..."라는 문구가 들리 자마자 아마도 메타 데이터 트리블이있을 것입니다.

4 개의 테이블로 하나의 데이터베이스를 만들어서 시작하고 추가해야합니다. user_id 4 개의 테이블 각각에 귀속됩니다.

사용자 당 별도의 데이터베이스로 분할하려는 예외가 있지만 예외. 당신이 무엇을하고 있는지 알고 그것이 필요하다는 것을 증명할 수 없다면 거기에 가지 마십시오.

다른 팁

대부분의 데이터베이스 서버 (및 파일 시스템)는 많은 별도의 데이터베이스가 필요한 인스턴스를 처리하지 않습니다. 실제로 필요한 것은 각 사용자마다 행이있는 4 개의 테이블이라고 생각합니다. 그것은 완전히 합리적인 요구 사항입니다.

아니요, 각각 4 개의 테이블이있는 2 백만 개의 데이터베이스가 필요하지 않습니다. 각 사용자마다 1 개의 데이터베이스, 4 개의 테이블 및 고유 한 사용자 ID 만 있으면됩니다.

같은 것 :

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

address table
| user_id (foreign key) | address  |

whatever table
| user_id (foreign key) | whatever |

사용자 당 4 개의 테이블이 필요한 이유가 궁금합니다. 바라건대 당신은 내가 여기서 전달하려는 것의 기본 사항을 이해하기를 바랍니다.

데이터웨어 하우징에서 빌린이 예를 고려하십시오. 일반 킴볼 스타입니다. 매우 단순화 된 모델이지만이 네 테이블은 설명 된 요구 등을 다룹니다.

telecom_model_01

사용자, 표 1, 표 2, 표 3, 표 4를위한 테이블 만 있으면됩니다. 그런 다음 table1에 데이터를 입력 해야하는 경우 users_id를 table1에 포함시킵니다.

TABLE 1                              USERS

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

Table1.usersid = user.id에서 내부 결합을 사용하여 연결할 수 있습니다.

당신이 요점을 얻기를 바랍니다

아니요, 2 백만 개의 데이터베이스가 필요하지 않습니다!

실제로 4 개의 테이블에 대해 2 백만 인스턴스가 필요합니다.

물론 각 테이블에 다른 테이블에 대한 관계 속성이 있도록 관계형 데이터베이스를 설계해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top