將JSON數據存儲在MySQL錶行中是否可以接受?我需要將數組存儲在mysql數據庫中。問題是,我不知道每個用戶需要多少列。所以我想將JSON存儲在一個名爲array
的行中作爲例子。這是最好的方法嗎?在MySQL數據庫中存儲JSON?
編輯:
而且,我使用text
爲表列類型。
將JSON數據存儲在MySQL錶行中是否可以接受?我需要將數組存儲在mysql數據庫中。問題是,我不知道每個用戶需要多少列。所以我想將JSON存儲在一個名爲array
的行中作爲例子。這是最好的方法嗎?在MySQL數據庫中存儲JSON?
編輯:
而且,我使用text
爲表列類型。
是的,它使用MySQL作爲一個key-value存儲一個非常好的主意,事實上Facebook並用於某些應用。
CREATE TABLE `json` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`data` blob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
上面的表結構會讓你走得更遠。分片或集羣非常簡單。
編輯:這裏的關鍵是使用PHP和Ruby等處理JSON /數據。你做SELECT ...
,做你的編輯,然後INSERT ... ON DUPLICATE KEY UPDATE ...
。
OP可能需要查詢JSON中的一些數據,所以這可能不是最好的想法。 – 2013-03-13 20:08:25
恩,這不是問題... – Gustav 2013-03-13 20:17:00
是的,我知道。他補充說,作爲對這個問題的評論。 – 2013-03-13 20:17:29
這不是問題。 mySQL已經可以處理其文本字段中的大部分括號和時髦字符。
我認爲不是。大約四個月後,你決定爲你的實體添加一個新的屬性或從你的實體中刪除一些屬性?你將如何解析你的舊JSON內容?如果您不知道表格中需要多少列,則應該用不同的方式思考,也許可以創建一個像使用user_column表一樣的動態結構。
在關係數據庫字段中存儲多條數據通常是錯誤的。可以考慮可接受的情況,但不能存儲整個用戶。
如果使用關係數據庫結構是不夠的,你可能想看看的MySQL數據庫的NoSQL inestead。
如果你肯定知道你永遠,永遠需要用JSON數據做任何事情(如查詢裏面的特定屬性),爲什麼不......但它不是真的在任何情況下很好的做法。 – 2013-03-13 20:02:37
爲什麼你需要不同的用戶數量不同的列? – beny23 2013-03-13 20:02:55
@Pekka웃我確實需要它 – user1947561 2013-03-13 20:04:05