批评我的无限动态字段的MySQL数据库设计
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了批评我的无限动态字段的MySQL数据库设计,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1843字,纯文字阅读大概需要3分钟。
内容图文
寻找可扩展,灵活和快速的数据库设计,以“建立自己的形式”风格的网站 – 例如Wufoo.
规则:
>用户只有1个可以构建的表单
>用户可以创建自己的字段或从“标准”字段中选择
>用户1表单包含用户想要的字段数
>值可以是另一个值的兄弟E.g照片值可以具有名称,位置,宽度,高度作为兄弟值
特别规则:
>用户每天最多可以提交5次表格
>价值日期很重要
>报告值的灵活性(针对单个用户,跨所有用户,1个字段,许多字段)非常重要 – 数据可视化(大多数将基于时间顺序,例如所有用户的2009年7月的所有照片).
表“用户”
UID
表“field_user” – 将字段分配给用户表单
瞎话
UID
weight – int – 用于对用户表单上的字段进行排序
表“字段”
瞎话
creator_uid – int – 字段’creator’
label – varchar – 例如电子邮件
value_type – varchar – 用于确定将填充’values’表中的哪个字段(例如,如果’int’,则此字段的值将数据提交到values.type_int字段中 – 并且所有其他.type_x字段将为NULL) .
field_type – varchar – 例如’email’ – 用于特殊情况,例如验证规则
表“值”
VID
parent_vid
瞎话
UID
日期 – 日期
date_group – int – 值1-5(用户每天最多可提交5个表格)
type_varchar – varchar
type_text – 文本
type_int – int
type_float – float
type_bool – bool
type_date – 日期
type_timestamp – 时间戳
据我所知,这种方法意味着’Value’表中的记录只有1个数据,其他.type_x字段包含NULL …但从我的理解,这个设计将是’最快的’解决方案(更少的查询,更少的连接)表)
解决方法:
昨天OSCON,Josh Berkus给出了关于数据库设计的一个很好的教程,他花了很大一部分时间无情地撕裂了这些“EAV”il表;你应该很快就能在OSCON网站上找到他的幻灯片,并最终在线录制他的整个教程(后者可能需要一段时间).
你需要一个每个属性的连接(值表的多个实例,你正在获取或更新的每个属性一个)所以我不知道“少连接表”是什么意思.加入同一个表的许多实例并不是一个特别快的操作,并且您的设计使索引几乎不可行且无法使用.
至少作为一个小的改进,使用每个类型的单独的表来表示你的属性值(也许某些索引可能适用于那种情况,尽管MySQL限制为每个查询每个查询一个索引,即使这有点可疑).
内容总结
以上是互联网集市为您收集整理的批评我的无限动态字段的MySQL数据库设计全部内容,希望文章能够帮你解决批评我的无限动态字段的MySQL数据库设计所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。