到昨天為止,我的專案已經能夠:
查詢藥品資訊
提供 AI 翻譯和摘要
把資料存進 SQLite 資料庫
在 Streamlit 介面上查詢
聽起來功能很多,但實際用起來還是有個問題:所有藥品查詢結果都是一長串清單。
如果資料庫裡有 100 種藥,使用者只能一個一個查詢,會很麻煩。
這時候我有一個關鍵功能:分類標籤。
如果每種藥都有「止痛藥、感冒藥、胃藥、保健品…」的分類,使用者只要選類別,就能快速瀏覽同類型的藥品。這樣不但查詢更方便,後續還能做同類藥品比較。
1.修改資料庫結構
首先,我在 SQLite 的藥品資料表 (drugs) 加了一個 category 欄位,用來存放藥品的分類:
ALTER TABLE drugs ADD COLUMN category TEXT;
這樣每筆藥品除了成分、副作用之外,還多了一個「分類」資訊。
2.資料分類方式
因為目前資料量不大,我就手動幫藥品加上分類。
這樣能快速驗證功能是否可行。
3.Streamlit 查詢介面改造
接著,我在 app.py 增加了一個下拉選單,讓使用者選擇想看的藥品類別:
category = st.selectbox("選擇藥品分類:", ["全部", "止痛藥", "感冒藥", "消炎藥", "胃藥", "保健品"])
if category != "全部":
results = query_by_category(category)
else:
results = query_all()
這樣使用者可以自由切換:
查詢結果的清單會自動更新。
我在資料庫中放了三種藥:
普拿疼(止痛藥)
克冒(感冒藥)
胃乳片(胃藥)
實測:
選「全部」 → 顯示三種藥品
選「止痛藥」 → 只顯示普拿疼
選「胃藥」 → 只顯示胃乳片
功能完全符合需求,而且操作直觀。
分類這件事看似小事,但對資訊系統來說卻是大升級。
沒有分類 → 資料就像一堆雜亂的清單,用戶要慢慢找。
有了分類 → 用戶能快速篩選出需要的範圍,再進行查詢或比較。
我覺得這次功能的加入,讓整個專案從一個單純的查詢工具,慢慢變成一個真正有資料庫系統思維的應用。
而且,這個分類功能也為未來的藥品比較打下基礎。因為要比較兩種藥,通常會是比較同類藥品的差異。現在有了分類,就能很容易找到比較對象。