【发布时间】:2022-10-16 11:21:25
【问题描述】:
我想知道我为我的 uni 组织网站所做的当前数据库设计。 一般而言,本网站用于显示信息和事件。每个部门的活动都不同。它做了一些正常的事情,比如显示事件、为管理员创建事件、为用户注册事件等。问题是每个部门可能有不同的表单来注册新参与者,比如部门 A 有 5 个表单输入,但部门 B 有 8 个表单输入.然而,每个事件可能有不同的形式,具有多种类型,如文本、单选或复选框。
为了解决我之前提到的问题,我设计了具有events、departements、event_forms、form_types、event_form_options 的数据库(当管理员决定选择该类型的表单时,用于复选框或收音机),@ 987654326@,以及其他一些不在此问题范围内的表格。我的想法是,管理员可以创建他们想要的任意数量的表单输入,并且每个表单输入等于event_forms 表的一行,该表引用了某些event 和event_id。但是这种方法可能出现的“问题”在于event_form_responses 表。在该表中,用户将对特定事件的每个表单输入做出响应。比如说,event A 有 10 个表单输入,然后有 60 人决定注册该活动,这意味着 event_form_response 仅针对该活动就有 600 行响应!然后它需要显示在管理仪表板中。
我的问题:
这会影响查询和网站性能吗?我认为会的。如果我更改 event_form 和 event_form_responses 以将其存储为 JSON 会怎样?在这一点上是否更有优势?这样每个event_form 都可以轻松地拥有不同签名和不同数量的表单输入。对于event_form_responses 将有1 * U 而不是Q * U,U 是在所述事件中注册的用户总数,Q 是表单输入的数量。先感谢您
【问题讨论】:
-
我的基本问题是,数据是否会改变,你必须问自己我是否适合 json 来处理更新查询和复杂的 json 查询等。
-
如果你想走 JSON 的路线,你可以考虑 MongoDB
-
@nbk 对于表单输入,可以更改。至于
event_form_responses是静态的。哪个更好,两个表event_form的 json 或中间部分,每个表单输入使用每一行,event_form_response的 json,你怎么看? -
@newtocoding我尽量避免使用json,我可以随意操作它们,但这总是很麻烦,所以尽量将数据保存为标准化,siz 通常是不相关的,只有当你可以使用工具来操作
-
@nbk 如果我告诉你 json 永远不会像使用
where子句或其他东西搜索一样查询。当然,它可以更改,但话又说回来,它可以用id检索
标签: mysql laravel database mysql-json