数据库名称: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 可以不只一种设计方式(?)
突然觉得 就算我只设计一张表 还是能写出来...
只是不知道以后会出什么问题= =
希望各位先进能提点一下努力成长中的业余工程师><
再次感谢各位!