瀏覽標籤:

資料庫

我的最愛追蹤功能製作

定義資源

我的最愛功能,製作一個可以讓 user 追蹤動物的操作,是一個連結的關係,綁定動物與用戶的關聯。

依照以前的經驗,我會幫這樣的動作取一個名字 like 之類的資料表來儲存內容。

但經過幾次的打造API經驗後,在規劃資料表的命名上,如果系統規模很大只有 like 當表名不是很明確。

我們這個系列打造的送養系統如果想要新增一個追蹤某位愛心媽媽的功能,就會覺得like不是很明確。

這樣在資料庫中看到 like 資料表,無法明確的知道內容。所以這邊我不另外給它一個名字。

會製作一張表  animal_user  這是我目前的原則!可以清楚知道這張資料表紀錄著 animal 與 user 的關係,並且依照字母排列A->Z命名這張表。 所以不命名為 user_animal 這是開始用 Laravel 後才有的習慣,在某個官方文章有寫到預設是 開頭A->Z來建立資料表。

閱讀更多

JOIN 介紹

今天來介紹JOIN,有以下幾個模式!

  1. JOIN
  2. LEFT JOIN
  3. RIGHT JOIN
  4. FULL OUTER JOIN
  5. CROSS JOIN
SELECT aga.area_pkid, a.name, aga.subid, aga.place, aga.kind 
FROM adoption_gov_animals AS aga LEFT JOIN areas AS a 
ON aga.area_pkid = a.id;
閱讀更多

修改資料表新建 migration

明天我們要來建立權限的部分,之前設定的是驗證使用者使用 token 身份,但一班的網站至少會有管理員或一般會員的區分,因此今天先來修改基本需要設定的東西。

變更資料表

資料表原本規劃時沒注意到的地方,或是規劃好的東西難免都會被要求修改需求,所以修改資料表也是一門學問,用 migration 檔案修改檔案可以方便整個團隊更新到最新的版本。

跟大家說一個經驗,如果目前的系統是在線上用運行中的,並且公司沒有 DBA 在負責管理資料庫的話,要變更資料庫欄位時一定要三思而後行。 至少要確認有沒有備份。

閱讀更多

JOIN 資料表的結合

為什麼拆開了!又要結合~你真的很野小,雖然只是把地區編號不重複的查詢出來,並補上資料,拆成areas 資料表,感覺起來好像沒有什麼,但是如果去拆分csv原始檔 後面的 動物所屬收容所代碼名稱,就會感受到拆解出來可以結審很多空間。

但在拆解後面的資料前,我們先嘗試把兩張資料表結合再一起吧!雖然是結合起來,但並不是真的合成一張表,是用 JOIN這個陳述,查詢出來並不是建立一個資料表

閱讀更多

整理資料表(一) 什麼是關聯式資料表?

關聯式資料庫的概念,是由多個互相有關係的資料表儲存資料並建立關聯。每個資料表是一個實體物件資料,像是我們的animals 資料表,裡面每一筆資料都是物件資料,內容包含動物的所有特性。

我們來整理一下前幾天匯入的另外一張資料表 adoption_gov_animals。如果沒匯入請到前天的文章執行一下SQL

拆分種類資料

adoption_gov_animals 中有一個欄位資料是紀錄動物種,可以用下方SQL執行看看,公開資料有多少種類。

SELECT DISTINCT kind FROM adoption_gov_animals;

顯示結果是有三種,我們把它拆出來到另外一張資料表。先建立一張資料表 types 裡面包含主鍵 id ,以及 name 欄位。其他欄位是紀錄新建以及更新時間。

CREATE TABLE types (
  id bigserial PRIMARY KEY,
  name varchar(20),
  created_at timestamp,
  updated_at timestamp
);

建立完成資料表以後,我們把資料寫入 types 資料表

INSERT INTO types(name,updated_at,created_at)
SELECT DISTINCT kind, now(), now() FROM adoption_gov_animals;

成功!我們有一張 分類資料表了!來記錄每一種分類,例如:貓|狗|鳥…

我們建立一個新的欄位在 adoption_gov_animals 欄位名稱為 types_id 來紀錄兩個的關係,欄位類型要跟 types 資料表的 id 一樣(bigint)

閱讀更多
PostgreSQL LOGO

認識目前資料庫的環境

學習資料庫先來看看資料庫系統排行!雖然公司用 PostgreSQL 但還是比較一下哪一個感覺比較好!

以防萬一方向走偏,亂衝亂撞!變成無頭蒼蠅~收穫不如預期就不好了!現在的人時間很寶貴~~

但是這下可好了~不查不知道一查!

資料庫排行
圖片資料來源來自 https://db-engines.com/en/ranking ( 2019-09)

PostgreSQL 排行第四名!前面分別是 Oracle、MySQL、Microsoft SQL Server

排行榜資料庫的系統種共有「352」種,非常非常多。前十名大致上都有聽過!但我只用過MySQL、Microsoft Access、PostgreSQL ,也是我接觸資料庫的順序,最後接觸PostgreSQL。

閱讀更多

後端前進PostgreSQL – 前言

為什麼想要寫這系列

平常小弟是一位後端(誤)全端工程師,出社會第一份工作,專門在寫Web的,包含前/後端以及資料庫。(自己是比較喜歡後端)

寫著寫著慢慢的發現,前端、後端、資料庫 認真起來都很深!

之前因為前端的需求比較高,去學 Vue.js 跟 Node.js 包含切版到畫面設計都碰過,使用 Adobe XD!又是一個設計領域~

最近案子開始維運了!除了嘗試不一樣的後端設計模式以外,對於只會用PHP Laravel 的 Eloquent ORM 去查詢資料庫的我,開始思考如何讓效能更好,決定從資料庫的方向做優化!

因此決定深入資料庫的世界!

為什麼會選擇PostgreSQL來當我的主題? 因為公司用PostgreSQL 所以這系列的鐵人賽文章就誕生了! 哈哈哈xD

適合什麼樣的人

  • 想學資料庫的人
  • 打好SQL語法基礎的人
閱讀更多