2013年3月14日 星期四

建立自用帳目系統~MySQL篇

MySql的Logo

自從架了Ubuntu的伺服器當NAS後,
雖然想讓系統簡單輕便一點。
不過還是改不了自己愛東試試,西裝裝的亂搞個性。
就這樣,最終還是把AMP(Apache2、MySQL、PHP)套件裝入了伺服器中,
讓此伺服器多了一項功能,記帳與家用物品管理。



上述的AMP三套件,其實是三種互相搭配的軟體:

  1. Apache2是網頁伺服器
  2. MySQL是資料庫軟體
  3. PHP則是動態網頁的伺服軟體

因為都是免費可以使用,所以受到了廣大的使用者歡迎。
這次是MySQL篇,就集中介紹架這個帳目系統的心得。

從過去第一次使用MySQL開始,
就只是因為PHPNuke與Joomla這種架站軟體需要才裝上去,
幾乎稱不上去「使用」過。
不過對於資料庫也不是完全都不熟,
大學時有上過資料庫設計的課程,只是那時實作是用微軟的Acess資料庫,
而非免費的MySQL,因為前者的關聯性較後者來得強大。
最終有設計出一個租書(影片)店的軟體,使用VB+Access撰寫。

話雖如此,一開始設計這個帳目資料庫,實在一點頭緒也沒有,
已經把資料庫的基本與MySQL的功能忘得差不多了。
最後靠著出當年要學PHPNuke的書,慢慢一點一點地找回了靈感。

最終是設計出這樣的東西:














主要的兩個帳目表格就是收入(income)與支出表(expenses)。
每一個表單都有各別的序號、日期、名稱、金額、類別與備註。
然後支出表(expenses)與支出類別表(exp_type)有關聯,
最主要是在支出的項目中,
我想建立自己的影片、CD、漫畫、遊戲、3C產品與車輛的額外資料庫(表)。
靠著支出類別表中的類別資料庫名稱,
就可以連結支出與各項用品的關係。
不過講歸講,實做出來的還是只有3C產品與車輛的資料表,
影片、CD、與漫畫還沒想到要怎麼實作比較好,
不過跟記帳比較無關,就先放著。

使用的過程中,遇到最大的問題就是資料的輸出,
也就是,該如何選出想要的資料就好。
這部分在單一資料表是沒問題的,多表下就是門學問了。
這問題曾經一度讓我想放棄分開支出與收入表,把兩表合併。
所幸網上資料實在不少,很快地就找到一個範例。
修修改改再加上測試後,就完全了解如何運作,
也才沒有再做白工,重建資料表。

不過就算弄到這裡,工作其實只有一半而已。
要讓記帳系統完美運作,還需要PHP建立出漂亮直覺的表單好讓人上手。
這就留在下一篇,網頁設計篇再來談了。

沒有留言: