아주 기본적인 웹 사이트의 mySql 데이터베이스에 하나의 테이블 만 있고 'RegisteredUsers'라는 단일 테이블에 사용자 레코드를 추가하기 위해 php/mysql 호출을 사용하고 있습니다. - 각 레코드는 다음과 같습니다각 사용자에 대해 임의의 수의 텍스트 단락을 저장해야 함
(name, member number, name of their subfolder on the server).
나에 대한 새로운 요구 사항 - 내 각 사용자가 제로 5000 항목에서 입력 할 수 있으며, 각 항목에 대해 그들이 텍스트 설명을 입력합니다.
사용자의 '아이템'은 선사 시대의 진흙 냄비, pharoahs 중 하나가 묻힌 유물 및 '초기 인간'유물 조각 (이름, 설명)입니다. (이름, 설명) 튜플은 제한된 크기의 텍스트가됩니다. (이름 : 텍스트, 길이 = 50, 설명 : 텍스트, 길이 = 512) - 사이트는 사용자가 이름과 설명에서 매우 간결하도록합니다.
이제 각 사용자가 골동품 중 임의의 숫자 (0에서 5000까지)를 추가 할 수있게해야합니다. 데이터베이스 초보자이더라도 2 번째 테이블을 만들고 "멤버 번호"를 사용하려고합니다. 두 번째 테이블을 인덱싱 할 첫 번째 테이블.
다음과 같은 필드가있을 것이다이 두번째 테이블의 각 레코드 :
(member number, name-of-the-antique, description).
내가 걱정하는 사용자가 함께이 2 테이블에서 이름으로 "바빌로니아 항아리를"항목을 삭제하고자하는 경우 최대 5000 개의 골동품을 사용자에게 제공합니다.
member number=NN and name=One-Of-5000-Antiques.
이 방법이 올바른 방법입니까?
, 성능 히트에 대해 걱정하지 마십시오. 적절한 인덱싱을 사용하면 문제가되지 않습니다. –
보조 테이블을 추가하여 성능에 영향을 미치지 않아도됩니다. 먼저 사용자 ID와 찾고자하는 엔트리를 반환하기 위해 사용하고자하는 식별자를 가진 단일 테이블 (table2) 만 쿼리 할 것입니다. 결국 이것은 설계된 것입니다. 다른 방법은 각 사용자마다 xml 파일을 만드는 것이지만 권장하지는 않습니다. – CBusBus
오케이 - 검색 할 5000 개의 레코드가 '많은 검색'이라는 두려움이 과장된 것으로 드러났습니다. 두 가지 의견을 바탕으로, 첫 번째 테이블에서 사용자 ID로 인덱싱 된 두 번째 테이블을 만드는 것에 대한 본능은 괜찮 았습니다. 고맙습니다. – wantTheBest