gpt4 book ai didi

mysql - 特定类别字段的数据库布局

转载 作者:行者123 更新时间:2023-11-29 14:53:55 24 4
gpt4 key购买 nike

我正在为市政府调用中心开发服务请求系统。市民调用电话后,调用中心代理将他们的请求输入到网络表单中,然后将其传输到相应的城市机构。我的问题与网络表单有关。

解释这一点的最好方法是举一个例子。如果调用者 A 打电话举报涂鸦,在客服人员从类别列表中选择“涂鸦”后,我希望有单独的字段用于处理以下内容:

  • 涂鸦的位置/地址
  • 覆盖它所需的油漆颜色
  • 需要梯子吗? (等等)

如果调用者 B 打电话报告废弃车辆,则提供的字段应如下所示:

  • 车辆位置/地址
  • 车辆品牌/型号
  • 车牌号
  • 车辆颜色(等)

显然,位置/地址等字段对于任何类型的调用都非常通用,但其他字段则不然,并且通常仅与一种类型的调用相关。所以问题是如何布局我的数据库来适应这种情况?

当然,我想到的一个想法就是将所有这些字段都包含在调用表中,并以某种方式指定哪些字段属于哪些类型的调用,而将其余字段保留为空(license_plate对于涂鸦投诉等来说将是无效的)。但字段的数量肯定会随着该选项而增加。

我的另一个想法是拥有单独的表,即一个 graffiti_calls 表,并在其中定义字段,尽管某些类别的调用不需要具有自定义字段(例如有人调用获取电话号码)。

最后,我认为实现此目的的一种更复杂的方法是拥有一个包含 id、category_id、questionfield_responsescategory_questions 表> 包含id、call_id、question_id、response 的表。这个选项似乎是最通用的,但也是最复杂的。

最好的方法是什么?请注意,我有使用 PHP/MySQL 的经验;这更多的是一个概念问题。提前致谢!

编辑:所以我尝试了一下第三个选项,并想出了 this layout 。如果您认为可以通过更好的方式实现这一点,我仍然愿意接受建议。

最佳答案

鉴于您想要搜索变量字段,可接受的结构是拥有一个包含所有全局字段的主表,例如ID、地址、日期等...

然后是具有以下格式的属性表:

`id`, `field_name`, `field_value`

因此,对于涂鸦示例,在主表中,您将有 id=1, Problem_type=graffiti, address='main street ...'

然后在属性表中您将有几行:

id=1, field_name=paintcolor, field_value=blue
id=1, field_name=ladder, field_value=FALSE
etc...

这将允许您搜索变量字段。

为了存储问题,我有一个映射问题类型、字段名称、问题文本的表。一个示例条目是:

graffiti, ladder, 'Is a ladder required?'
graffiti, paintcolor, 'What paint color is required?'
etc...

您可以根据需要扩展它,并喜欢向此表添加额外的字段(如输入类型等),以便您可以智能地生成 html 表单,例如对于梯子,您可能只需要一个带有是/否的选择框,您可以将列添加到问题表中,指定输入类型、符合条件的值、验证正则表达式等...这完全取决于您想要的详细程度得到。

关于mysql - 特定类别字段的数据库布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com