2010-07-18 10 views
2

지금은 여러 세트의 데이터 (URL, 제목 및 날짜 포함)가 DB에 저장되도록 요구하는 웹 앱을 만들고 있습니다.데이터베이스에 여러 값 집합을 저장하는 방법은 무엇입니까?

예를 들어, 사용자 1은 Example, http://example.com, and YY-MM-DD HH:MM:SS으로 구성된 항목 1을 저장할 수 있습니다. 그리고 그는 동일한 유형의 데이터를 가진 여러 항목을 가질 수 있습니다.

전에, 내가 좋아하는 뭔가 내 사용자 테이블의 하나 개의 필드에있는 모든 항목을 sotring했다 : 하나의 큰 문자열로 결합 될 것

Example=>http://example.com=>YY-MM-DD HH:MM:SS[END] 
Example2=>http://example2.com=>YY-MM-DD HH:MM:SS[END] 
etc... 

하고 PHP에서 나는 각 문자열을 분리하는 것 구분자 [END]을 입력 한 다음 THOSE 문자열 각각을 구분 기호 =>으로 구분하십시오. 이제는 각 사용자가 'Items'테이블 (user1_items, user2_items 등)을 가질 수 있도록 이러한 항목을 자체 테이블에 저장하는 것이 더 나은지 궁금합니다. 이것을 할 수있는 '올바른 방법'이 있습니까? 별도의 테이블을 사용하면 잔인 할 수 있습니까? 또한, 얼마나 많은 공간이 있다면, 내 웹 호스트에서 손실 될 것인가? 이 절차를 수행하는 방법에 대한 지침을 찾아보십시오.

더 자세한 설명이 필요하면 알려 주시기 바랍니다.

+0

* 항상 * 및 * 만 *이 세 가지 항목이 될 수 있습니까? 아니면 항목 수가 달라질 수 있습니까? –

+0

각 항목에는 항상 세 가지 요소가 있지만 많은 항목이 될 수 있습니다. – williamg

답변

5

고유 사용자 ID와 함께 각 사용자에 대한 정보가있는 사용자 테이블이 있어야합니다.

각 정보 (URL, 제목, 날짜)가 별도의 열인 데이터 테이블이 있어야합니다. 이 정보가 속한 사용자를 나타내는 user_id라는 추가 열을 추가하십시오.

+0

그게 좋은 생각 같아! 감사! – williamg

0

나는이 형식을 따를 것이다. 왜냐하면 그것이 나에게 더 빠르기 때문이다.

모든 고유 사용자의 색인을 사용하면이 고유 사용자의 색인을 정보가있는 표가있는 고유 한 하위 색인과 연결하는 기사 테이블에 대한 상담을 생성합니다. 예 => http : // example.com => YY-MM-DD HH : MM : SS [END] Example2 => http : // example2.com => YY-MM-DD HH : MM : SS [END] 등 ...

예 :


사용자의 유일한 색인 pe userid = '98'

[User table] 

    (Userid (Index)) 
    (Name) 
    . 
    . 
    . 

And 


[Articles table] 

Subid(Articleid) 98 
(Url) http: // example.com 
(Datetime) YY-MM-DD HH:MM:SS 

-------------------------- 

Subid(Articleid) 99 
(Url) http: // example.com 
(Datetime) YY-MM-DD HH:MM:SS 

__________________________ 

같은 사용자 색인이 기사의 동일한 하위 색인에 연결되었습니다. 상담을 통해 모든 정보를 얻을 수 있기 때문에 자신의 상담을 데이터베이스에 저장하고있었습니다.

1

별도의 표에 동의합니다.

여러 값을 열에 삽입하기로 결정한 경우 [END]와 같은 구분 기호를 삽입 할 필요없이 배열에 저장하고 serialize($array)을 사용하여 저장 전에 직렬화 한 다음 $array = unserialize($dbResponse);을 데이터베이스에서 검색 할 때 이것은 데이터가 소독되고 안전하다고 가정합니다.

1

하나의 긴 문자열에 데이터를 넣으면 데이터베이스의 목적을 무효화합니다. 텍스트 파일에 쓰는 것과 같습니다. 데이터베이스는 데이터를 구성, 색인화 및 서로 관련시키는 방법입니다.

데이터베이스 구조를 시각화하려면 테이블을 상상해보십시오.

id  name   url       date 
    ---- ------------ -----------------------  -------------------- 
    1  Example1  www.example1.com   10-07-14 13:56:13 
    2  Example2  www.example2.com   10-07-15 00:06:37 
    3  Example3  www.example3.com   10-07-16 16:20:00 
    4  Example4  www.example4.com   10-07-17 09:18:22 

각각의 하나는 데이터베이스의 행이며, 당신은 쿼리를 기반으로 그들의 무리를 꺼내 한 다음 그들과 함께 무엇을해야 할 수 있습니다.

또한이 데이터를 user_id 열을 추가하고 users 테이블의 사용자 레코드를 참조하는 각 레코드에 사용자 ID를 삽입하여이 데이터를 입력 한 사용자와 관련시킬 수 있습니다.

관련 문제