基本上有两种方法可以做到这一点。
一个简单的方法是创建一个 LONGBLOB 或 LONGTEXT 字段,您将在其中存储矢量的 serialized 版本。
但从数据库建模的角度来看,这是一个非常丑陋的解决方案,因为 DBMS 无法执行搜索或索引这些向量的内容。
正确的方法是在1-to-many relationship 中使用两个表。
这意味着,您将拥有一个表table_A,其结构如下:
CREATE TABLE table_A ( -- records
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name TEXT,
surname TEXT,
PRIMARY KEY (id)
);
还有一个表table_B,其中包含向量中的值以及与table_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
);
工作示例:http://sqlfiddle.com/#!2/79521/2
使用这种格式,您可以允许 DBMS 执行搜索并管理向量的值。