Wutai × Ordilux · 假資料練習
資料庫練習|用對帳單的假資料問問題
← 回七關階梯練習

三張表,幾句話,把對帳單問出來

這一頁裡有一個真的資料庫,就在你的瀏覽器裡跑,不用安裝、不用帳號,你打的任何東西都不會被送出去。資料全是假的,照社宅代管費對帳單的樣子做的。你按按鈕跑跑看,改壞了按「重設資料」就回來。

怎麼用:從第 1 題往下按「跑跑看」,看結果跟中文問題對不對得上。看懂了再去第 8 題自己改句子;寫不出來就把第 9 題的提示詞貼給 AI,讓它寫、你驗收。

不用背語法。你要學的只有一件事:資料分成幾張表放好之後,很多本來要翻半天的問題,變成一句話。

資料庫載入中……

01三張表長什麼樣

對帳單今天是「一筆一區塊、一個營業處一個分頁」。這裡把同一份資料拆成三張表,一件事只寫一次:案件的錢在案件表、案件歸誰在歸屬表、每家的比率在分潤表,三張表靠媒合編號互相指過去。

案件表 每月從政府清冊搬進來,一列一案一月

表格可左右滑動

歸屬表 一件案子第一次出現時填一次

表格可左右滑動

分潤表 一家一列

媒合編號照真實格式虛構(五泰+縣市+代碼+流水號),金額、比率、地址、營業處名稱全是假的。案件表裡 115.05 有兩件在歸屬表找不到,那是故意留的,第 3 題會用到。

02練習題(第 1 至 7 題)

03第 8 題|自己問一句

把上面任何一題的句子改一改:換營業處、換月份、改成弱勢戶、多加一個條件。錯了會有紅字,不會壞掉任何東西。

04第 9 題|讓 AI 幫你寫

你負責用中文講清楚要什麼,它負責寫。把下面整段連同你的問題貼給 AI,它回的 SQL 貼到第 8 題執行;結果對不對,你看得出來。

我有一個 SQLite 資料庫,三張表如下(表名與欄名都是中文,直接照用): 案件(媒合編號 文字、月份 文字、縣市 文字、弱勢戶 文字「是」或「否」、媒合費 整數、代管費 整數、期數 文字)  一列是「某一件案子在某一個月」。月份是民國年加月,寫法固定像 '115.04'、'115.05';縣市的值只有「臺北」「新北」「桃園」(臺是這個臺);期數的值是 '4'、'4.1'、'5'。媒合費只在案子第一個月有值,之後是 0;代管費每個月都有。 歸屬(媒合編號 文字、營業處 文字、物件地址 文字)  一件案子一列,記它歸哪個營業處。注意:有些新案在歸屬表裡還沒有列,用一般 JOIN 會把它們靜靜漏掉;如果問題要把它們算進去,用 LEFT JOIN。 分潤(營業處 文字、媒合費比率 小數、代管費比率 小數)  一家一列。營業處應收 = 案件.媒合費 × 媒合費比率 + 案件.代管費 × 代管費比率。 規則:只寫一段 SELECT 查詢,不要 UPDATE 或 DELETE;欄名用中文;結果欄位取中文別名;先用一句話講你打算怎麼組這三張表,再給 SQL。 我的問題是:(把你的問題寫在這裡)

05設計得好不好,就這三句話

01

一件事只寫一次

比率只寫在分潤表。第 7 題你改一列,全部對帳單就跟著變。

02

每一列要有身分證

三張表靠媒合編號互相指過去,不拿地址或名字當識別,那些會打錯、會有兩種寫法。

03

一格只放一件事

欄名也只有一種寫法:「媒合費/開發費」有八種寫法,在電腦眼裡就是八欄。

順序不能反。先盤點、再清洗、再定表格,最後才選資料庫與部署。這一頁的三張表是「定表格」那一步的樣子,不是叫你現在去建資料庫。你手上的真資料要先過前面兩步。

資料庫引擎:sql.js(SQLite 編譯成 WebAssembly,MIT 授權)。一切只在你的瀏覽器裡發生,關掉分頁就沒了。