반응형
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
반응형
'programing' 카테고리의 다른 글
Java: Precision을 이중으로 설정하는 방법 (0) | 2022.09.16 |
---|---|
재부팅 후 MariaDB Galera 노드가 다운됨 (0) | 2022.09.16 |
스태틱 수식자는 이 코드에 어떤 영향을 미칩니까? (0) | 2022.09.04 |
MySQL에서 datetime 또는 timestamp 데이터 유형을 사용해야 합니까? (0) | 2022.09.04 |
C fopen vs open (0) | 2022.09.04 |