我在MySQL中創建了一個表。我想存儲名稱,姓氏和雙向矢量,但問題是:如何在MySQL中創建矢量列?我的矢量包含130個元素。如何在MySQL中創建一個具有矢量類型的字段?
1
A
回答
2
基本上有兩種方法可以做到這一點。
一個簡單的方法是創建一個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_A
table_B
表:
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
使用這種格式,您可以f允許DBMS執行搜索並管理向量的值。
0
我建議你看看JSON數據類型。通過這種方式,您可以以比text或varchar更高效的方式存儲矢量,並且您可以直接從MySQL訪問數據,而無需分析整個事物。
看看這個鏈接:https://dev.mysql.com/doc/refman/5.7/en/json.html
你只需要你的載體存儲在一個JSON形式這樣[24, 12, 54, 39, ...]
相關問題
- 1. 如何創建一個只具有數據字段的模型
- 2. 創建具有基於另一矢量
- 3. 如何創建一個矢量,其中每個條目是具有2個字段的結構
- 4. MYSQL,使用具有創建一個字段作爲在CONCAT
- 5. 創建個人字符串矢量類
- 6. 如何使用MySQL GUI工具創建一個字段NULL?
- 7. R:從另一個矢量創建具有某些值的矢量
- 8. 如何構建一個具有抽象類類型字段的對象?
- 9. 如何在OCaml中創建具有多個參數的類型?
- 10. 創建一個字符串矢量:C++
- 11. 如何爲矢量矢量創建一個Maybe等價物?
- 12. 如何創建一個具有指定字段長度的mySQL表?
- 13. 在類中創建類與矢量
- 14. 如何創建帶有4個字段和每個字段9個字符長度的矢量對象
- 15. 在MySQL中創建ENUM變量類型
- 16. 創建一個帶有數字的矢量與另一個矢量中的其他數字「合作」
- 17. 從文件創建一個矢量[矢量[字符]]
- 18. 如何從Float32Array創建矢量原型?
- 19. 如何動態創建一個具有表格數據類型的變量?
- 20. 如何創建矢量矢量?
- 21. 如何在張量流C api中創建一個字符串類型張量?
- 22. 在極座標中創建一個具有震級矢量的圖
- 23. 如何創建具有指定泛型類型的func類型?
- 24. 在兩個點之間創建一條具有歸一化矢量的曲線
- 25. 如何在Java中創建一個類型變量數組?
- 26. 如何在Go中創建一個變量類型片?
- 27. 如何在C#中創建矢量#
- 28. 如何高效地在python中創建一個稀疏矢量?
- 29. 如何在Python中創建一個類字段[list]只讀?
- 30. 如何在Dynamics CRM 2011中創建「客戶」類型的字段?
兩個主要選項:1)創建一個二進制BLOB或2)打印矢量到文本(例如每個數字用「;」分隔)並將該列保存爲文本字符串。看看這篇文章:[用於將數組存儲在mySQL表中的BLOB vs VARCHAR](http://stackoverflow.com/questions/3106548/blob-vs-varchar-for-storing-arrays-in-a-mysql-table) 。 – FoggyDay
一個向量聽起來基本上像一張桌子。在關係數據庫建模中,您可能正在尋找一對多的關係。 – Brandon