日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
PostgreSQL的數(shù)組

PostgreSQL 有很多豐富的開(kāi)箱即用的數(shù)據(jù)類(lèi)型,從標(biāo)準(zhǔn)的數(shù)字?jǐn)?shù)據(jù)類(lèi)型、到幾何類(lèi)型,甚至網(wǎng)絡(luò)數(shù)據(jù)類(lèi)型等等。雖然很多人會(huì)忽略這些數(shù)據(jù)類(lèi)型,但卻是我最喜歡的特性之一。而數(shù)組數(shù)據(jù)類(lèi)型正如你所期望的,可以在 PostgreSQL 存儲(chǔ)數(shù)組數(shù)據(jù),有了這個(gè)特性,你可以在單個(gè)表中實(shí)現(xiàn)以往需要多個(gè)表才能實(shí)現(xiàn)的存儲(chǔ)要求。

為什么要使用數(shù)組來(lái)存儲(chǔ)數(shù)據(jù),如果你是應(yīng)用開(kāi)發(fā)人員,那么在數(shù)據(jù)庫(kù)中使用同樣的模型來(lái)存儲(chǔ)程序中的數(shù)據(jù),何樂(lè)而不為呢。況且這樣的做法還能提升性能。下面我們將介紹如何使用 PostgreSQL 的數(shù)組類(lèi)型。

假設(shè)你在一個(gè)網(wǎng)站上購(gòu)買(mǎi)物品,那么你所購(gòu)買(mǎi)的信息就可以用下面這個(gè)表來(lái)表示:

 
 
 
  1. CREATE TABLE purchases (
  2.     id integer NOT NULL,
  3.     user_id integer,
  4.     items decimal(10,2) [100][1],
  5.     occurred_at timestamp
  6. );

在這個(gè)表中,擁有一個(gè)數(shù)組字段來(lái)保持多個(gè)商品記錄,包括:

  • 購(gòu)買(mǎi)商品的編號(hào)
  • 數(shù)量
  • 價(jià)格

要往這個(gè)表里插入數(shù)據(jù)的 SQL 如下:

 
 
 
  1. INSERT INTO purchases VALUES (1, 37, '{{15.0, 1.0, 25.0}, {15.0, 1.0, 25.0}}', now());
  2. INSERT INTO purchases VALUES (2, 2, '{{11.0, 1.0, 4.99}}', now());

一個(gè)更有實(shí)際意義的例子是標(biāo)簽的使用,你可以用標(biāo)簽來(lái)標(biāo)識(shí)購(gòu)買(mǎi)的物品:

 
 
 
  1. CREATE TABLE products (
  2.     id integer NOT NULL,
  3.     title character varying(255),
  4.     description text,
  5.     tags text[],
  6.     price numeric(10,2)
  7. );

你可使用基本的查詢(xún)語(yǔ)句來(lái)獲取數(shù)據(jù):

 
 
 
  1. SELECT title, unnest(tags) items FROM products

你還可以使用 Postgres 的 Gin and Gist  索引來(lái)根據(jù)指定的標(biāo)簽快速搜索產(chǎn)品:

 
 
 
  1. -- Search where product contains tag ids 1 AND 2
  2. SELECT  *
  3. FROM    products
  4. WHERE   tags @> ARRAY[1, 2]
  5. -- Search where product contains tag ids 1 OR 2
  6. SELECT  *
  7. FROM    products
  8. WHERE   tags && ARRAY[1, 2]

英文原文:http://craigkerstiens.com/2012/08/20/arrays-in-postgres/

本文鏈接:http://www.oschina.net/question/12_65936


分享標(biāo)題:PostgreSQL的數(shù)組
當(dāng)前鏈接:http://www.dlmjj.cn/article/cogppsi.html