iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 21
0
Modern Web

從無到有,打造一個漂亮乾淨俐落的 RESTful API系列 第 21

[Dat-21] 建立資料庫欄位

今天是2017最後一天了~今天空氣真的蠻糟的各位出門跨年記得帶個口罩啊!
趕緊上來發今年的最後一篇文XD

本文你將會學到

  • 如何建立資料庫
  • 如何建立資料表
  • 如何建立資料表欄位

前言

這篇文章終於開始要帶大家實作一個小專案啦!還記得一開始有提到要教各位做一個簡易的部落格貼文 API 現在就正式開始囉,前面幾週花了很多時間建立基礎與設定環境是為了讓大家可以有個從零開始的基礎,這幾週所提到的觀念接下來的實作中都會派上用場,若遇到不懂或不熟悉的可以再回去看看前幾篇文章囉。

使用 Sequel Pro 建立資料庫

1. 建立資料庫(Database)

前幾篇文章已經教你如何下載與安裝 Sequel Pro ,環境設定好了那就開始建立資料庫與欄位囉!首先我們是要做一個部落格貼文 API 那我們就建立一個名為 Community 的 Database,點選左上角的 Choose Database -> Add Database 輸入資料庫名稱與選擇文字編碼的方式,這邊選擇萬國碼 UTF-8 這樣資料才能被接受儲存中文字。

https://ithelp.ithome.com.tw/upload/images/20171231/20107247UxcGMk87KH.png
https://ithelp.ithome.com.tw/upload/images/20171231/20107247WsiDFMH0cr.png

2. 建立資料表(table)

一個部落格貼文一定會有文章以及用戶,所以我們就分別建立文章 (Article) 與 用戶(User) 的資料表(table),新增的方式點選介面最左下角的 + 號來新增 table 分別建立 Article 與 User。

https://ithelp.ithome.com.tw/upload/images/20171231/20107247ofDDBFR1NU.png

文章(Article)

文章的欄位分別有主鍵 文章id(article_id) 以及外來鍵 用戶id(user_id) 對應到用戶這樣才能知道是誰發的文,此外還有 文章標題(article_title)文章標籤(article_tag)文章內容(article_content)文章發佈時間(article_created_time)文章更新時間(article_updated_time),這邊要特別注意的是發佈與更新時間的型態要設為 datetime 時間格式,並且 article_created_timeDefault 預設值位置要填上 CURRENT_TIMESTAMP 代表系統會自動寫入你當時的時間戳記,另外 article_updated_timeExtra 的欄位要選擇 on update CURRENT_TIMESTAMP 表示系統會自動寫入你變動資料的時間。另外此表格的主 key 為 article_id,必須要有唯一性,因此要再 Extra 欄位標上 auto_increment 即表示編號自動生成。

欄位 型態 備註
article_id int(11) 文章id
user_id int(11) 用戶id
article_title varchar(255) 文章標題
article_tag varchar(255) 文章標籤
article_content text 文章內容
article_created_time datetime 文章發佈時間
article_updated_time datetime 文章更新時間

https://ithelp.ithome.com.tw/upload/images/20171231/20107247QDSzrMTG04.png

用戶(User)

用戶的欄位分別有主鍵用戶id(user_id)用戶姓名(user_name)用戶信箱(user_mail)用戶密碼(user_password)用戶新增時間(user_created_time)用戶更新時間(user_updated_time),這邊要一樣要注意的是發佈與更新時間的型態要設為 datetime 時間格式,並且 user_created_timeDefault 預設值位置要填上 CURRENT_TIMESTAMP 代表系統會自動寫入你當時的時間戳記,另外 user_updated_timeExtra 的欄位要選擇 on update CURRENT_TIMESTAMP 表示系統會自動寫入你變動資料的時間。另外此表格的主 key 為 user_id,必須要有唯一性,因此要再 Extra 欄位標上 auto_increment 即表示編號自動生成。

欄位 型態 備註
user_id int(11) 用戶id
user_name varchar(255) 用戶姓名
user_mail varchar(255) 用戶信箱
user_password varchar(255) 用戶密碼
user_created_time datetime 用戶新增時間
user_updated_time datetime 用戶更新時間

https://ithelp.ithome.com.tw/upload/images/20171231/20107247kMvMhTFmN6.png

文章同時發表於:https://andy6804tw.github.io/2017/12/31/create-table/


上一篇
[Day-20] 測試API的好工具
下一篇
[Day-22] 設定joi與config dotenv環境參數
系列文
從無到有,打造一個漂亮乾淨俐落的 RESTful API43
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
jiamingla
iT邦新手 4 級 ‧ 2022-07-04 00:23:09

auto_increment?

10程式中 iT邦研究生 4 級 ‧ 2022-07-04 00:45:13 檢舉

MySQL 的 Primary Key 使用 auto_increment 自動產生一個序列編號。

jiamingla iT邦新手 4 級 ‧ 2022-07-06 01:39:15 檢舉

要請你補充下,這裡沒有說明只有圖示XD

0
jc1328
iT邦新手 5 級 ‧ 2023-09-10 18:34:57

這邊建議database內的命名都用小寫,因為Day41匯出SQL檔後,檔案內的名稱都會被轉成小寫。
做到Day42發現table不存在,才回去改。

10程式中 iT邦研究生 4 級 ‧ 2023-09-10 18:38:05 檢舉

感謝提醒!

我要留言

立即登入留言