你可以存儲JSON ...
規範化是用來優化數據庫結構的技術。第一範式(1NF)規則規定每列應該保存一個值 - 這是通過存儲多值JSON文檔來破壞的。
創建具有JSON字段
CREATE TABLE `product_serialNumbers` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(200) NOT NULL,
`serialNumbers` json DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
表格添加JSON數據
INSERT INTO `product_serialNumbers` (`title`, `serialNumbers`)
VALUES (
'ECMAScript 2015: A SitePoint Anthology',
'["ac111", "ab177", "ac14521"]'
);
JSON也可以與所創建的:
//returns [1, 2, "abc"]:
SELECT JSON_ARRAY(1, 2, 'abc');
//returns {"a": 1, "b": 2}:
SELECT JSON_OBJECT('a', 1, 'b', 2);
//returns ["a", 1, {"key": "value"}]:
SELECT JSON_MERGE('["a", 1]', '{"key": "value"}');
搜索JSON數據
//all product_serialNumbers with the 'ac14521' serialNumbers:
SELECT * FROM `product_serialNumbers`
WHERE JSON_CONTAINS(serialNumbers, '["ac14521"]');
如果創建5個產品,我會在我的'產品'表中創建5條記錄,如果使用解決方案1,我將在'serial_numbers'中有750條序列號的記錄! (5 * 150 = 750) –
那麼它有什麼問題呢? –