[SQL ] 請問資料正規化實做已刪文

看板Database (資料庫)作者 (阿慶)時間3年前 (2020/11/15 21:19), 3年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
資料庫名稱:MariaDB 資料庫版本:10.3.25 內容/問題描述: 大家好: 想請教各位關於資料表設計的概念/實做問題。 要用Laravel重寫原先的網頁,顯示已通過檢測認證的網站/app報告內容。 (這是我自己拿來練手的小專案...) 但不確定資料表該怎麼規劃... (因原本是從報告檔直接撈資料出來show,沒用到資料庫) 希望各位能給點建議,或者哪些概念可以幫助釐清和定義這些資料關係。 謝謝。 報告會記載的內容有: app報告: 基本資訊: 受測單位、檢測日期、檢測結果、app名稱、app版本 檢測資訊: 設備、型號、作業系統、版本、輔助工具、版本 檢測功能列表: [..., ..., ...] 網站報告: 基本資訊: 受測單位、檢測日期、檢測結果、網站名稱、網址 檢測資訊: 作業系統、版本、位元、瀏覽器、版本、輔助工具、版本 檢測功能列表: [..., ..., ...] 我有做了以下嘗試: reports table: | id | org_id | env_id | auth_at | auth_list | passed | org table: | id | name | env table: | id | dev_name | dev_serial | os_name | os_ver | os_arc | brs_name | brs_ver | ast_name | ast_ver | 或者再將 env table 分成 device, system, browser 三個表 然後讓 env table 去關聯這三個表的 id 但我不確定 如果這樣 是否就不需要 env table了?直接把三個參照放在 reports table? 想請問應該是 env: report_id (reports.id) 還是 reports: env_id (env.id) 呢? (是否有方法區分 應該把 fk 放在reports or 個個小表呢?) 另外我也不知道應該怎麼處理 app名稱/版本 & 網站名稱/版本 的欄位 是建立一個 items table(id, name, value, type) 這樣 還是 app table(id, name, version), site table(id, name, url) 呢? 或者一樣可以把他們丟回第一張 reports table? 因為一個app通常會用iOS & Android 分別檢測(2份報告) 網站則會用 Chrome & Firefox 分別檢測(2份報告) 原始(Word)資料可能出兩份報告,也可能和併成一份 不知道這樣應該怎樣分析比較恰當呢? 之前自學的案例,都是學生 班級 科系 教師 課程 書籍 出版社 作者 讀者 起碼每一個個體都可以有相應動作 似乎比較容易拆芬他們 但是...一份報告...我不知道還能怎麼對付他@@ 而且似乎這些資料只要符合 3NF 可以不只一種設計方式(?) 突然覺得 就算我只設計一張表 還是能寫出來... 只是不知道以後會出什麼問題= = 希望各位先進能提點一下努力成長中的業餘工程師>< 再次感謝各位! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.228.24 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1605446369.A.013.html ※ 編輯: kevin82222 (106.1.228.24 臺灣), 11/15/2020 21:26:42 ※ 編輯: kevin82222 (106.1.228.24 臺灣), 11/15/2020 21:28:51 ※ 編輯: kevin82222 (106.1.228.24 臺灣), 11/15/2020 21:36:56 ※ 編輯: kevin82222 (211.23.21.202 臺灣), 11/16/2020 10:08:15 ※ 編輯: kevin82222 (211.23.21.202 臺灣), 11/16/2020 10:18:12
文章代碼(AID): #1ViIhX0J (Database)
文章代碼(AID): #1ViIhX0J (Database)