2013-05-07 6 views
-6

나는 주식 시장 타입의 웹 사이트를 개발 중입니다. 사용자가 회사 견적을 시계 목록에 저장하고 다른 많은 사람들과 비슷한 업데이트 된 데이터를 사용할 수 있도록 허용하는 방법에 대해 궁금합니다.사용자 환경 설정 저장 방법은 무엇입니까? (PHP)?

문제에 대한 도움을 주시면 감사하겠습니다. 감사합니다.

+7

그게 바로 데이터베이스입니다. – Barmar

+0

웹 개발에 대한 귀하의 경험은 어떻습니까? Nontheless ... 간단한 답 : 데이터베이스 (예 : MySQL) ;-)) – thedom

+0

데이터베이스를 사용하고 그 안에 모든 설정을 저장하십시오. MongoDB 선호 –

답변

3

항상 모든 사용자에 대해 설정되어있는 항목은 Users 테이블에 보관해야합니다. 평소 정규화됩니다.

TABLE Users: 
    id INT AI 
    name VARCHAR 
    ... 

TABLE User_Settings 
    user_id INT PK,FK 
    name VARCHAR PK 
    type BOOL 
    value_int INT NULL 
    value_str VARCHAR NULL 

User_Settings.type는 정수 또는 문자열 필드가 참조해야하는지 여부를 지정합니다 : 옵션 설정에 관해서는 나는 다음과 같은 테이블 구조를 좋아하는 경향이있다.

예 :

INSERT INTO Users (id, name) VALUES (1, 'Sammitch'); 
INSERT INTO User_Settings (user_id, name, type, value_int) VALUES (1, 'level', 1, 75); 
INSERT INTO User_Settings (user_id, name, type, value_str) VALUES (1, 'lang', 0, 'en'); 

그리고 INSERT/UPDATE 문제에 대한

:

INSERT INTO User_Settings (user_id, name, type, value_str) VALUES (1, 'lang', 0, 'fr') 
    ON DUPLICATE KEY UPDATE value_str='fr'; 

또한, 대부분의 다른 사람들이 말하는 직렬화 및 환경 설정을 저장하는 것은 특히 좋은 생각 때문에하지 않습니다되는 등 :

  1. 쿼리와 함께 단일 값을 검색 할 수 없으면 전체 serializ ed 문자열을 제거하고 직렬화를 해제 한 다음 불필요한 데이터를 삭제합니다.

  2. 쉽게 손상 될 수 있으며 복구하기가 어렵습니다.

  3. 원시 쿼리를 작성하는 것, 즉 : 특정 설정을 전체적으로 수정하는 것입니다.

  4. 기본적으로 테이블 형식의 데이터를 단일 테이블 필드에 저장합니다.

이 작업을 수행해야합니다. 그렇다면 답을 수락 해주십시오.