2014-06-21 2 views
1

MySQL에서 테이블을 만들었습니다. 이름, 성 및 벡터의 복소수를 저장하려고하지만 문제는 다음과 같습니다. MySQL에서 벡터 열을 어떻게 만듭니 까? 내 벡터 130 요소가 포함되어 있습니다.MySQL에서 벡터 형식의 필드를 만들려면 어떻게해야합니까?

+0

두 가지 주요 옵션과 같은 JSON 형식으로 귀하의 벡터를 저장해야합니다 : 1) 이진 BLOB를 만들거나 2) 인쇄하려면 벡터에서 텍스트로 (각 숫자는 ";"로 구분됨) 텍스트 열로 저장합니다. 이 게시물을보십시오 : [BLOB 대 MySQL의 테이블에 배열을 저장 VARCHAR] (http://stackoverflow.com/questions/3106548/blob-vs-varchar-for-storing-arrays-in-a-mysql-table) . – FoggyDay

+0

벡터는 기본적으로 표와 비슷하게 들립니다. 관계형 데이터베이스 모델링에서 일대 다 관계를 찾고있을 것입니다. – Brandon

답변

2

당신이 할 수있는 본질적으로 두 가지 방법이 있습니다.

간단한 것은 벡터의 serialized 버전을 저장할 LONGBLOB 또는 LONGTEXT 필드를 만드는 것입니다.

DBMS은 검색을 수행하거나 해당 벡터의 내용을 색인 할 수 없으므로 데이터베이스 모델링 관점에서 볼 때 매우 추악한 솔루션입니다.

올바른 방법은 1-to-many relationship의 두 테이블을 사용하는 것입니다.

CREATE TABLE table_A (-- records 
    id  INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    name  TEXT, 
    surname TEXT, 
    PRIMARY KEY (id) 
); 

그리고 table_Btable_A에 각각 기록과 벡터의 값과 연결을 포함하는 테이블 :

CREATE TABLE table_B (-- vector values 
    parent INT UNSIGNED NOT NULL, 
    id  INT UNSIGNED NOT NULL, -- for indexing, in case the order of the vector elements matter 
    value  TEXT, 
    PRIMARY KEY (parent, id), 
    FOREIGN KEY (parent) REFERENCES table_A (id) ON DELETE CASCADE ON UPDATE CASCADE 
); 

그것은 당신이 다음과 같은 구조의 테이블 table_A있을 것입니다 의미

실무 사례 : http://sqlfiddle.com/#!2/79521/2

이 형식을 사용하면 DBMS가 검색을 수행하고 벡터 값을 관리 할 수있게합니다.

0

JSON 데이터 유형을 살펴 보시기 바랍니다. 이렇게하면 텍스트 또는 varchar보다 효율적인 방법으로 벡터를 저장할 수 있으며 모든 것을 구문 분석하지 않고도 MySQL을 직접 작성하여 데이터에 액세스 할 수 있습니다.

은이 링크에서보세요 : https://dev.mysql.com/doc/refman/5.7/en/json.html

당신은 그냥이 [24, 12, 54, 39, ...]

관련 문제