programing

MariaDB 다이내믹 컬럼과 JSON

yoursource 2022. 9. 16. 21:10
반응형

MariaDB 다이내믹 컬럼과 JSON

JSON 데이터(길이를 알 수 없는 PHP의 배열)를 컬럼에 저장하려고 합니다.이것에 의해, 쿼리는 어디에서 행할 수 있게 됩니다.이걸 예로 들어보자...

예를 들어, 어떤 종류의 스포츠를 좋아하는지 묻는 필드가 있다고 합시다(체크박스입니다).

[] Soccer
[] Hockey
[] Football
[] Swimming

그런 다음, 그 다음,sports[]어레이를 PHP로 변환합니다.그런 다음 이것을 가져와서 데이터베이스에 추가해서

|sports|{hockey:false,swimming:true,football:false,soccer:true}|

아니면 뭐 그런 식으로, 그러면 내가 갈 수도 있지

SELECT COUNT(*) FROM fields WHERE hockey = "false";

그리고 이 "예"는 실제로 참여함으로써 쉽게 할 수 있다는 사실을 무시한 채 제대로 할 수 없을 것 같습니다. 저는 mariadb dynamic columns를 사용하여 그것을 하고 싶습니다(적어도 그것이 제가 원하는 것이라고 생각합니다).Postgre를 사용해서 할 수 있다는 걸 알아요.

자세한 내용은 https://mariadb.com/kb/en/dynamic-columns/를 참조해 주세요.

동적 열은 실제 내부에 저장됩니다.blob다음과 같이 삽입됩니다.

insert into data
values (data_id, user_id, COLUMN_CREATE(<dcolumn1>, <value1>, <dcolumn2>, <value2>, ...));

따라서 여기서 json을 사용하지 않고 다음과 같은 방법으로 데이터를 직렬화합니다.

$dynamic = array()
foreach($_POST['sports'] as $sport) {
    $dynamicData[] = "'" . $sport . "'", TRUE;
}
$dynamicColumn = join(', ', $dynamicData);

다음과 같은 것이 생성됩니다.

'hockey', TRUE, 'soccer', TRUE

모든 행에서 축구를 하는 ppl을 검색하려면:

... where COLUMN_GET(dynamic_blob, 'soccer' as soccer) = TRUE; 

언급URL : https://stackoverflow.com/questions/23087105/mariadb-dynamic-columns-json

반응형