나는 아래와 같은 테이블을 가지고있다.내가 사용하는 기존 4 테이블 시스템 이외의 태그 기반 레코드 시스템으로 시작하는 오픈 소스 솔루션이나 빠른 시작이 있습니까?
나는 이와 같은 4 개의 MySQL 테이블을 가지고있다;
표
========================
id1 | brand | tags
========================
111 | mercedes | xx
-----+-----------+------
222 | mercedes | yy
-----+-----------+------
333 | ford | xx,yy
-----+-----------+------
444 | audi | yy,zz
-----+-----------+------
555 | jaguar | xx,yy,zz
========================
표 2
========================
id2 | model | id1
========================
aaa | s class | 111
-----+-----------+------
bbb | figo | 333
-----+-----------+------
ccc | a6 | 444
-----+-----------+------
ddd | xf | 555
-----+-----------+------
eee | a4 | 444
========================
표 3
============
id1 | id3
============
111 | xx
-----+------
222 | yy
-----+------
333 | xx
-----+------
333 | yy
-----+------
444 | yy
-----+------
444 | zz
-----+------
555 | xx
-----+------
555 | yy
-----+------
555 | zz
============
표 4
==================
id3 | tagdetails
==================
xx | description
-----+------------
yy | description
-----+------------
zz | description
==================
내 의도는 조합 검색입니다. 나는 PHP + MySQL을 사용한다. 나는 입력으로주는 태그로 레코드를 가져오고있다. 예를 들어 xx
을 입력하면 mercedes
, ford
및 jaguar
이 표시됩니다. xx,yy,zz
을 줄 때 나는 jaguar
만을 얻습니다. 엄청난 수의 레코드가있을 때 이것은 매우 비효율적 인 솔루션입니다. 기존의 유사한 솔루션을 무료로 사용할 수 있습니까?
감사합니다.
예, CSV 데이터로 자동차 이름을 저장 안 sqlfiddle 데모는, 그러나 오히려 별도의 기록으로 그들을 탈출. 하지만 다른 질문이 있습니까, 그렇지 않다면 왜 다른 테이블을 게시 했습니까? –
전 PRA로 사용하기 위해이 질문을 게시하지 않는다는 것을 보여주기 위해 전체 테이블을 게시했습니다. 나는 현재이 솔루션을 사용하고 있으며, 말했듯이 이것이 효율적이지 않다는 것을 알고 있습니다.캐싱을 위해 "Apache Ignite"와 같은 필자의 요구 사항에 따라 사용자 정의 할 수있는 효율적인 솔루션이 있는지 묻습니다. –
스키마를 변경하지 않고 작업 속도를 높이는 방법에 대해 질문하거나 디자인을 개선 할 방법을 찾고 있습니까? –