2011-01-01 4 views
0

서버 측 JavaScript를 사용하고 있습니다. 예, 실제로 서버 측 JavaScript를 사용하고 있습니다. 더 복잡한 작업을 위해 Oracle을 백엔드 데이터베이스 (10g)로 사용합니다. 미친 XSLT와 돌연변이와 같은 HTML 세대를 통해 나는 정말 멋진 웹 양식을 만들 수 있습니다. 예, 레일즈와 다른 프레임 워크에 대해 알고 있고 대신 공포의 길을 선택합니다. 내가 사용할 수있는 JQuery 나 기타 멋진 프레임 워크가 없으며 Mozilla Rhino라는 기본 엔진에서 지원해야하는 JavaScript 만 있습니다. 예, 그것은 미쳤고 나는 그것을 좋아합니다.SQL 및 JavaScript를 사용하는 사용자 기본 설정

그래서 여러 가지 테이블을 사용할 수 있으며 그 중 일부는 값에 연결되는 연관 키로 채워져 있습니다. 내가 사람들을 기쁘게하는 사람들이기 때문에 나는 멋진 사용자 선호도 중심의 솔루션을 추가하고 싶다.

내 사용자는 고유 한 user_id를 모두 가지고 있으며 전체 세션 동안이 user_id를 사용할 수 있습니다.

나의 초기 아이디어는 user_id, feature 및 pref_string이라는 "three"열이있는 사용자 기본 설정 테이블을 갖는 것입니다. 다음과 같은 구분 기호를 사용하십시오 : - (아직 적절한 것에 대해 생각하지 않았습니다), 목록으로 선호 집합을 저장하고 .split-method를 사용하여 배열 안에 요소를 저장하는 것을 좋아할 수 있습니다 (PHP -explode 함수). 지형지 물 열은 표 이름 또는 "지형지 물"에 대한 식별자 중 하나와 같을 수 있습니다. 객체를 하드 코딩하는 것이 싫고 특히 이것을 백업하고 응용 프로그램 전체에서이 기능을 재사용 할 수 있기를 바랍니다. 물론 더 나은 아이디어를 원할 것입니다. 단지 라이브러리를 쉽게 추가 할 수는 없습니다.

이러한 기본 설정은 테이블에 "조인"된 것과 같을 수 있으므로 쿼리하고 값을 사용할 수 있습니다.

나는 그것이 너무 복잡하게 들리지 않기를 바란다. 왜냐하면 그 기본적으로 무언가가 정말로 간단하기 때문이다.

감사합니다.

편집

내가 현재 10 개 개의 동적 값이 드롭 다운 상자를 작성하고 싶은 말은 수 있습니다. 나는 간단한 SELECT 문을 사용하여 데이터베이스에서 다음을받을 것이다 :

SELECT pet, value FROM pets 

그것은 다음과 같이 테이블을 반환 :

dog 1 
cat 2 
fish 3 

나는 드롭 다운 상자 안에이를 입력합니다. 그러나 user_id 100처럼 포유류 (개, 고양이) 만 볼 수 있으며 user_id 200은 바다 생물 (물고기) 만 볼 수 있습니다. 이제이 테이블에는 세계의 모든 생물체가 있으며, 그러한 환경 설정이 필요한 많은 테이블이 있다고 상상해보십시오.

무제한 사용자가있을 수 있으므로 일부 형식의 메타 데이터를 적용해야합니다. 이를 수행하는 솔루션은 제가 찾고있는 것입니다.

+0

환경 설정 테이블에 일종의 "환경 설정 유형"열이 있어야합니다. 일부 기본 설정은 단순한 부울 값이고, 다른 설정은 날짜 또는 정수 또는 문자열 일 수 있습니다. 기본 설정 UI가 다소 자동화 될 수 있도록 다른 표시기를 포함 할 수도 있습니다. 이는 새로운 UI마다 고유 한 UI 코딩을 요구하는 유지 관리 문제 일 수 있습니다. – Pointy

+0

오, 또한, 당신이 여기서 무엇을 요구하고 있는지 분명하지 않습니다. 현재 솔루션에 문제가 있습니까? – Pointy

+0

나는 환경 설정을 가볍게 생각해서는 안된다는 것을 알고있다. 그러나 나는 적어도 약간의 "환경 설정"을 가질 수있는 모델을 시작합니다. 초기 값이나 보이는 아이템과 비슷합니다. 후자의 경우 부울 유형 만 사용할 수 있습니다. – Shyam

답변

2

이 들린다.이것은 데이터베이스와 테이블 디자인을 마음에두고 있습니다.

테이블에서 값 목록을 분류하는 방법은 상황에 따라 다릅니다. 예를 들어 설명하는대로 데이터가있는 PETS 테이블이있을 수 있습니다. 그런 다음 PETS가 소유 할 수있는 데이터가있는 PET_ATTRIBUTE_LIST 테이블이있을 수 있습니다. 마지막으로,이 두 가지를 연결하는 PET_ATTRIBUTE 테이블을 가질 수 있습니다. 그런 식으로 특성 (물고기, 포유류, 척추 등)이 하나의 테이블에 있고, 애완 동물 (개, 고양이, 베타 등)이 다른 테이블에 있고, 임의의 속성 집합이 애완 동물과 연결될 수 있습니다.

사용자에게 중요한 옵션 만 표시되는 경우 테이블 보유 사용자와 PET_ATTRIBUTE_LIST 테이블간에 레코드를 연결하는 USER_PET_ATTRIBUTE 테이블이 있어야합니다.

이 방법을 사용하는 다 대다 관계가 많이 있지만 가장 유연합니다.

+0

물론 이에 동의합니다. 그러나 데이터베이스의 데이터는 JavaScript 변수 내에로드됩니다. 특정 사용자에 대한 결과를 얻는보기를 생성 할 수 있습니다. 그러한 속성 목록 (예, 모범 사례)에 대한 참조 자료가 있습니까? – Shyam

+0

맞아, 당신은 데이터베이스/백엔드 측에서 엄청난 양의 데이터를 데이터 단위로 처리하기를 원합니다. 데이터가 프런트 엔드로 전송되기 전에 필터링을 수행하는 뷰 또는 저장 프로 시저를 수행 할 수 있습니다. 어느 쪽을 선호하든, 정말로, 그러나 ref 커서를 사용하여 패키지/프로 시저/함수로 유지하는 것이 좋습니다. –

0

"프레임 워크를 사용하지 않음"에 대해 다시 생각해 봐야한다고 생각합니다. Helma/Ringo는 Rhino를 기반으로 한 서버용 자바 스크립트 프레임 워크로서 완성도 높은 프로덕션입니다. 추상화 레이어는 자바 스크립트 객체를 관계형 데이터베이스 (jdbc 연결)에 매핑 할뿐만 아니라 이미 사용자 객체 및 환경 설정에 대한 손쉬운 방법을 제공합니다. 이 서버 측 (I하지 생각이 미친 선택을 할 ) 자바 스크립트 또는 프레임 워크의 당신의 부족 (내가 생각은 조금 미친 할 있는)과는 아무 상관이없는 것처럼

+0

프레임 워크를 추가하기 전에 먼저 몇 가지 개념을 이해하는 것을 고려합니다. 나는 추상화를 좋아한다. 하지만 나는 못생긴 부분도 좋아합니다. 나는 연습을 통해 배울 때 실패 할 때를 발견합니다. 그래서 쉽게 프레임 워크를 사용하여 내 문제를 기술적으로 해결할 수 있습니다. 그것은 나의 굶주림을 만족시키지 않을 것이다. – Shyam

관련 문제