---
# System prepended metadata

title: 資料庫相關
tags: [Database]

---

# 資料庫相關
###### tags: `Database`
## 資料庫命名規則
1.業界通常table name, file name, field name一律用英文
2.student_name, StudentName兩種都有人用，這次做的專案採用底線、全小寫(前者)

## Stored Procedure(預先儲存的程式)
如果有一個查詢的動作，經常會被重複使用，可以寫成預先寫好的程式，方便之後去呼叫，而不用每次都下一次statement。

像常見的程式語言，同樣需要進行宣告、回圈、if else判斷式等。

分為Procedure和Function。

AP交給Procedure處理，等待程式return結果。

## 前後端工作分配
通常分為兩種：

(1)所有的運算都交給AP(前端)運算，後端僅儲存資料
e.g. wordpress
優點：後端很單純，只需要儲存table，以及傳送、接收前端資料，對資料庫不熟悉的工程師比較方便。
缺點：效率較差，每次運算都要進行資料的傳輸，程式也較複雜，AP負擔大。

(2)後端系統本身也會進行資料的運算
e.g. 商用資料庫
優點：速度快、AP較單純，進行資料庫整合[1]的時候，AP比較好維護。
缺點：後端工程師需要對資料庫較熟悉，較難coding，後端儲存的SQL procedure dubug會非常困難。


[1]資料庫整合：讓各個AP都去存取整合過後的資料庫，而不是每個AP都有一個獨立的資料庫，。