繁体   English   中英

帮助MySQL查询或数据库设计,以帮助我实现这一目标

[英]Help with mysql query or database design to help me achieve this

我是该网站的长期读者,但从未发布过,希望这里的人能为您提供帮助。 我正在开发一个多用户Web应用程序,该应用程序允许用户将潜在客户信息捕获到我们的数据库中。 将在应用程序内为用户提供默认字段,例如名称和电子邮件,这些字段被分组为数据组。

但是,我希望允许用户根据需要创建任意数量的自定义字段,还允许他们选择这些自定义字段所属的数据组。 我正在努力寻找实现这一目标的最佳方法。

我的数据中目前有3个表,如下所示:

datagroups

group_id   group_name    order
1          test group 1    2
2          test group 2    1


datafields

field_id      field_name    group
   1           field 1        2
   2           field 2        1
   3           field 3        2


customdatafields

custom_field_id     field_name      group
      1               custom 1       1
      2               custom 2       2

我真的很困惑如何在三个表之间创建查询,以便可以在显示后生成视图:

test group 2
- field 1
- field 3
- custom 2

test group 1
- field 2
- custom 1

我需要牢记的一件事是,我可能允许用户创建自定义数据组,这也是需要考虑的因素。

任何对此的投入将不胜感激。

谢谢

但是,我希望允许用户根据需要创建任意数量的自定义字段,还允许他们选择这些自定义字段所属的数据组。

您刚刚使每个临时用户都成为了数据库设计人员。

听起来像个好主意吗?

在表中应该是一行的所有内容最终将成为单列中逗号分隔的字符串。 数据迟早变成这样。

Home: 123-456-7890, Work: 123-456-0987, Cell: 123-454-5678
H: 123-454-6453, W: 123-432-5746, 800: 1-800-555-1212
234-345-4567, 234-345-6785
323-123-4567 Don't call before 10:00 am

人们为什么要这样做? 因为普通人不知道如何设计数据库。 他们将做最方便的事情,就是现在以任何方式放置数据,并弄清楚以后如何处理它。

哎呀,SO上的大多数程序员都不知道如何设计数据库。 只需阅读一个星期左右的[数据库]问题即可。 (包括此版本的一打变种。)

不想使用MySQL或这方面的任何SQL数据库管理系统。 如果您不能正确地进行建模,那么SQL dbms只会使您在时间之前丧命。

好吧,您描述的输出不是表格形式的...因此,您将不会直接从sql语句中得到什么。

但是,您应该可以使用UNION来获得清单,例如:

select g.group_id, g.group_name, f.field_name
from datagroups g, 
    (select field_name, field_id, group from datafields 
     union
     select custom_field_name, field_id, group from customdatafields 
    ) f
where f.group = g.group_id
order by g.order

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM