【问题标题】:MySQL dynamic field to store undetermined datatypeMySQL动态字段存储未确定的数据类型
【发布时间】:2014-10-05 11:27:57
【问题描述】:

我目前正在使用 MYSQL Workbench 为 Joomla 组件设计数据库,但在设计中遇到了一个绊脚石。

问题描述:

我想允许管理员创建字段供前端用户管理。该字段由管理员根据类型和长度确定。

我的设计:

ADMIN_FIELDS (this is the table to store admin defined fields)
id    INT
name  VARCHAR(45)
type  VARCHAR(45)

USER_FIELDS (this is the table to store user information in the fields defined by admin)
id        INT
value     LONGTEXT
admin_field_id FK_ADMIN_FIELDS  

问题:

  1. 由于我不知道值字段的长度,我选择了 LONGTEXT 作为数据类型。这可以从布尔值到 LONGTEXT 大小不等,具体取决于管理员选择的数据类型。考虑到我的问题,这是一种很好的数据库设计技术吗?有没有更好的办法?

  2. 如果我将 LONGTEXT 用于布尔值这样小的内容,是否会影响性能?在最坏的情况下,如果管理员决定在他网站的所有字段上疯狂地使用布尔值,并且假设他有十亿用户创造了这些值。那么网站的性能会受到影响吗?

  3. 如果没有性能损失,那么我们为什么还要费心将数据存储到相关的数据类型中。为什么不对所有内容都使用 LONGTEXT?

提前感谢您的回答。

【问题讨论】:

标签: mysql joomla


【解决方案1】:

感谢您的 cmets。从那以后,我进行了一些研究,并找到了适合我需求的解决方案。我基本上是在设计组件以允许管理员创建自定义表。因此,该组件将存储管理员定义的表模式。

我选择不使用 Cck 或其他表单扩展,因为我希望组件能够处理与其他组件的智能集成。所以本质上该组件将直接与数据库交互,同时允许其他组件轻松调用我的组件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-29
    • 2017-09-11
    • 2013-05-13
    • 2021-02-22
    • 1970-01-01
    • 2011-10-09
    • 2013-07-06
    • 2021-01-30
    相关资源
    最近更新 更多