[英]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.