2010-11-29 4 views
0

죄송합니다.이 내용이 포함되어있는 경우 - 몇 시간 동안 찾고 있었지만 효과적으로 검색 할 용어가 부족하다고 생각합니다. MySQL : 각 사용자의 프로필 정보는 어디에서 웹 사이트에 저장합니까?

은 내가 각 사용자에 대한 프로필 정보를 저장하는 방법을 알아 내려고 노력하고있어. 프로필 정보로는 이메일 등의 정보를 의미하는 것이 아니라 내가 작업하고있는 사이트에 대한 선호도를 의미합니다.

그것은 언어 학습 사이트, 그리고 나는 그들에게 플래그의 옵션 배운 교훈을주고, 사용자가 자신의 "진보"를 저장할 수 있어야합니다.

나는 그들이 한 일을 추적하고 싶다. 그래서 나는 그들에게 행하지 않은 운동 만하려고 할 수있다. (또는 그들이 가능한 운동을 다 써 버렸을 때, 가장 최근의 것부터 시작한다.) . 나는이 모든 정보를 어디에 저장할 것인지 잘 모르겠습니다.

내가 수업에 사용자를 연결하는 조회 테이블을해야합니까? 나는 이것이 사용자와 테이블의 수가 증가함에 따라 커질 것을 두려워한다. 그냥 부울로보고, 나는 각 사용자에게 int (그리고 더 많은 ints 배열로) 각 비트가 교훈을 나타내는 것을 고려하고, 그 숫자에 bitwise 연산자를 수행하여 그들이 저장 한 교훈에 대한 정보를 얻는 것을 고려했다. 미래에는 성가신 것처럼 들리지만. 그들이했던 행사 기억하는에 관해서는

, 나는 내가 MySQL의에 저장하려고하면이 폐기물의 엄청난 금액으로 이어질 것입니다 우려하고있다. 쿠키를 사용하여 사용자의 컴퓨터에서이 작업을 수행 할 수 있습니까? 쿠키를 사용하지 않는 사람은 반복적으로 운동 문제를 처리해야합니다.

어쩌면 나는 다른 테이블 및 다른 데이터베이스에 대해서 생각해야 할 것입니다! 나는 모른다!

모든 말도 안되는 말도 안돼. 적어도 내가 읽어야 할 것들에 대한 조언을 주시면 감사하겠습니다.

답변

3

사용자와 연습 사이의 찾아보기 표는 가장 간단하고 유연성이 뛰어나므로 걱정할 필요가 없습니다 그것의 크기에 관해서. 그것은 사용자 아이디, 운동 ID, 그리고 일종의 진행 변수를 가지므로 (필요에 따라) 아마도 행 당 10 바이트 이하의 공간이 될 것입니다. 1 백만 행은 10MB의 공간도 차지하지 않습니다. 사용자가 특정 운동에 진행의 일종을 만든 후에

나는 아마에만 테이블에서 만든 얻을 기록이있을 것이다. 따라서 운동에서 사용자의 진행 상태를 살펴보고 행을 찾을 수 없다면 운동에 대해 아무 것도하지 않은 것입니다. 그렇게하면 진행 상황을 나타내는 행만 만들어야하므로 전체적으로 상당히 낮은 수를 유지해야합니다.

+0

+1 나도 이겼다. –

+0

좋아, 멋지다, 나는 단지 mysql 데이터베이스의 순수한 규모에 익숙하지 않은 것 같다. 나는 그것에 착수 할 것이고, 감사 할 것이다! –

+0

@ 마이클 : 이런 종류의 일에 대해서는 너무 성급하게 생각하지 마십시오. 어떤 방법이든 가장 쉽게 작업 할 수 있고 가장 유연한 방법으로 시작해 보시고 나중에 응용 프로그램에서 병목 현상이나 문제가 발생하는 경우 나중에 변경하는 것에 대해 걱정하십시오.실제로 필요하다는 것을 알기도 전에 일을 더 어렵게 만들 필요가 없습니다. –

0

당신은 다른 운동 (다 대다 관계)에 각 사용자를 연결하는 접합 테이블이 필요합니다 : 당신은 가능한 모든 조합에 대한 항목이있을 필요가 없습니다

user_id(int) exercise_id(int) learned(boolean) 

, 당신은 추가 할 수 있습니다 레슨이 학습 된 것으로 표시 될 때 각 조합.

하는 비트 단위의 방법이 잘못된 길을 가고, 당신은 확장 성이 아니다 ... 각 레슨 조금 필요할 것.

관련 문제