CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `email` varchar(100) NOT NULL, `password` varchar(255) NOT NULL, `meta` json NOT NULL, PRIMARY KEY (`id`) );
偶个人喜欢这种方式,因为它允许大家存储非结构化数据,同时还可以通过索引和查询进行高效的检索和过滤操作。在上面的代码示例中,大家创建了一个名为“users”的表,其中包含了几个常规的字段(id、name、email和password),还定义了一个名为“meta”的JSON字段。
使用这个字段,您可以将任意数量的JSON对象存储在每一行中。例如,您可以将用户的偏好选项、购物车内容或其他应用程序数据存储在其中。下面是一个例子:
INSERT INTO `users` (`name`, `email`, `password`, `meta`) VALUES ('John Doe', 'john.doe@example.com', '123456', '{ "likes_sports": true, "favorite_sport": "football", "cart": [ {"product": "Shoes", "quantity": 2}, {"product": "T-Shirt", "quantity": 1} ] }');
通过使用JSON列表和对象,大家可以存储任意数量的数据项,并且大家可以在查询中轻松地使用MySQL内置的JSON函数,如JSON_EXTRACT()和JSON_CONTAINS()。
虽然JSON封装是一个很好的存储方式,但是大家应该注意把它用作所有数据的存储方式。如果大家提供一些结构化方式存储数据,例如,使用常规列来存储数据,那么大家可以轻松地使用各种查询和聚合规则来访问和修改数据。