2013-04-21 7 views
0

성능에 대해서는 & '올바른 방법'을 수행하고 SQL 데이터베이스에 구성 데이터를 저장하는 것이 더 나은 방법을 찾기 위해 노력하고 있습니다. 사용자가 사이트에 액세스해야하는 최소 및 최대 연령을 설정하기위한 웹 사이트 구성 데이터가 있다고 가정합니다. 더한 열에 여러 값 저장 여러 값에 대해 여러 열

CREATE TABLE SiteConfig 
(
    featureName varchar(100), 
    value varchar(100), 
) 

:

  • 가 단일 행에 모두 저장) (폭발과 PHP에서 그것을 처리하기 위해 ;.

    featureName "ageRequirement"

    값 : "13 | 60"

  • 은 각 기능에 대한 별도의 행에 저장 그냥 필요할 때 필요한 기능을 선택합니다.

    featureName "MINAGE"

    값 : "13"

    featureName "MAXAGE"

    값 : "60"

인해 기능의 양 웹 사이트의 경우, 이것은 60 행의 데이터 대 25의 차이입니다.

답변

0

스토어에는 두 가지 기능이 있습니다.

응용 프로그램 코드가 아닌 데이터베이스의 기능에 액세스 할 수 있습니다.

두 가지 기능을 얻으려면 쉼표로 구분 된 문자열을 구문 분석 할 이유가 없습니다.

쉼표로 구분 된 두 개의 숫자 만있는 경우 틀림없이 잘못 될 수 있습니다. 그러나 이것은 미끄러운 슬로프이며 곧 여러 필드를 단일 문자열로 채우고 문자열을 파싱하는 데 많은 자원을 투입하려고 시도 할 것입니다.

0

이러한 값이 데이터베이스에서 사용하지 않는 값이라면 둘 중 하나가 작동합니다.

데이터베이스의 값을 사용하려는 것으로 의심되는 경우에는 동일한 값으로 설정하지 않아도됩니다. 그러면 데이터를 복잡하고 비효율적으로 쿼리 할 수 ​​있습니다.

+0

그건 내 생각이었습니다. 내가 준 예제는 단순한 것이지만, 그 경로를 선택했다면 다른 변수가 2 ~ 5 개있는 많은 다른 기능이 있습니다. 데이터를 얻기 위해 너무 많은 SELECT 문을 만들어야하는 것에 대해 걱정했습니다. – Vidarious

+0

@Vidarious : 행 대신 다른 설정에 별도의 열을 가져 와서 쉽게 가져올 수 있습니다. 또한 다른 값에 대해 다른 데이터 유형을 사용할 수 있습니다. 예를 들어 'int'는 최소 및 최대 연령 값에 더 잘 맞는 것으로 보입니다. – Guffa