日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库存储列表(List)/数组(Array)型数据的两种方式

發布時間:2024/3/26 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库存储列表(List)/数组(Array)型数据的两种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

方式一:

把各項列表數據拼接成一個字符串(用某個符號作為分隔符)存儲在數據庫的一個字段中

如:存儲衣服尺碼,每件衣服有不同的尺寸,可在數據庫中存儲如 S-M-L-XL-(-是分隔符) 這樣的字符串數據

為防止bug,列表數據中不應該有分隔符(若有,則在讀取數據時會出錯)

又或者將列表數據中的分隔符轉義,如用–(兩個-)做分隔符,列表數據中:1.出現的/在存儲前轉換為//,2.出現的-在存儲前轉換為/-。數據在讀取前在變換回去:1.出現的/-在讀取前轉換為-,2.出現的//在讀取前轉換為/。

如(用空格劃分各項數據):

原始數據:jkj/k-pp-o/k ko/-L pp–LLk
轉義后的數據:jkj//k/-pp/-o//k ko///-L pp/-/-LLk
加入分隔符(–)拼接后的數據:jkj//k/-pp/-o//k–ko///-L–pp/-/-LLk–

如此,最后加入分隔符拼接時,在列表數據中就不會有–(兩個-)存在了

方式二:

本質上是一種一對多的實體關系

將需要存儲的一項列表數據存儲在一行數據庫表的記錄中,屬于同一列表的所有列表數據在該表某個字段(該字段專門用來標識列表)擁有同樣的值,同一類型的列表存儲在同一張表中。在另一個需要存儲列表數據的數據庫表中有一個字段用來存儲標識某列表的值。

如:

用戶收藏商品。在 product_list 表中,屬于同一用戶的所有商品收藏列表數據在 user_id 字段擁有同樣的值。

下面展示了在用戶 bluecyan 收藏了商品手機、衣服、電腦,用戶 Vbluecyan 收藏了商品蘋果、手機后各表中的數據狀態。

表 user
user_id 用戶id,主鍵

user_id
bluecyan
Vbluecyan

表 product
product_id 商品id,主鍵
product_name 商品名

product_idproduct_name
1000蘋果
1001手機
1002衣服
1003電腦

表 product_list
id 自增主鍵
user_id 用戶id,外鍵
product_id 商品id,外鍵

iduser_idproduct_id
1Vbluecyan1000
2bluecyan1001
3Vbluecyan1001
4bluecyan1002
5bluecyan1003

實際上,在這個案例中,用戶對商品是一對多關系,商品對用戶也是一對多關系,用戶和商品在收藏這個關系上是多對多的關系。

總結
兩種方式各有優劣,在實際開發中要根據實際情況決定選擇那種方式。方式一適合列表數據可能的取值較少的情況;如果列表數據可能的取值較多或者經常變化,采用方式二會更好。

總結

以上是生活随笔為你收集整理的数据库存储列表(List)/数组(Array)型数据的两种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。