--- title : 動態式表格與資料表設計 tags: 動態式表格、EditTable.js、動態式表格資料表 creat-date: 2022-02-16 update_date : 2022-02-16 --- --- # 動態式表格與資料表設計 --- ## 一、動態式表格 EditTable.js **參考 EditTable.js:https://github.com/jdorn/EditTable** ![](https://i.imgur.com/cQlIWIj.png) ![](https://i.imgur.com/dLCjuGx.png) ![](https://i.imgur.com/DPiabHe.png) ![](https://i.imgur.com/q7lDYFR.png) ## 二、資料表設計 **(1)系統資料對應畫面** ![](https://i.imgur.com/ju51QvX.png) **(2)資料表名稱** ```sql= SELECT * FROM dataset_metadata WHERE title='臺中市社會救助補助項目 ``` ![](https://i.imgur.com/qeOqS3E.png) **(3)資料表欄位** ```sql= SELECT * FROM dataset_column WHERE metadatano=272 ``` ![](https://i.imgur.com/S76pYQL.png) **(4)資料內容** ```sql= SELECT * FROM dataset_columnvalue WHERE columnno=6647 ORDER BY itemno ``` ![](https://i.imgur.com/Ajg5jDT.png) ## 三、資料反轉 **(1)建立view,將欄位和資料內容整合成一張表** ```sql= SELECT col.columnno, col.fileno,col.metadatano, col.name, col.verify, col."position", val.itemno, val.value, val.orivalue, val.checkvalue FROM dataset_column col LEFT JOIN dataset_columnvalue val ON col.columnno = val.columnno; ``` ![](https://i.imgur.com/FuRx6Dz.png) **(2)資料反轉(postgresql)** ```sql= SELECT * FROM crosstab( 'SELECT itemno, position, value FROM public.v_dataset_verify_tcc WHERE metadatano = 272 ORDER BY 1,2' ) AS value ( "ItemNo" int,"補助流水號" character varying,"補助名稱" character varying,"補助內容" character varying,"補助對象年齡下限" character varying,"補助對象年齡上限" character varying,"身份1" character varying,"身份2" character varying,"收入條件每人每月上限" character varying,"動產條件每人上限" character varying,"不動產條件每戶上限" character varying,"其他條件" character varying,"應備文件" character varying,"收件洽辦單位" character varying,"聯繫方式" character varying,"詳細資訊" character varying); ``` ![](https://i.imgur.com/BmYnzRs.png) **(3)資料反轉(sql)** ```sql= SELECT ItemNo as '項次', * FROM (SELECT ItemNo, Position, Value FROM [SW_OpenData].[dbo].[v_DataSet] WHERE MetadataNo = 272) As STable PIVOT (MAX(Value) FOR Position IN ([補助流水號],[補助名稱],[補助內容],[補助對象年齡下限],[補助對象年齡上限],[身份1],[身份2],[收入條件每人每月上限],[動產條件每人上限],[不動產條件每戶上限],[其他條件],[應備文件])) As PTable; ```