我目前正在使用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
问题:
由于我不知道值字段的长度,因此我选择了LONGTEXT作为数据类型。这可以从布尔值到LONGTEXT大小,具体取决于管理员选择的数据类型。鉴于我的问题,这是一个很好的数据库设计技术?有更好的方法吗?
如果我将LONGTEXT用于像布尔一样小的东西,是否有性能损失?在最糟糕的情况下,如果管理员决定在他的网站的所有字段上全部疯狂地使用布尔值,并且假设他有十亿用户创建这些值。那么该网站会遭受性能损失吗?
如果没有性能损失,那么为什么我们甚至懒得将数据存储到相关的数据类型中。为什么不将LONGTEXT用于一切?
提前感谢您的回答。
答案 0 :(得分:0)
感谢您的评论。我做了一些研究,找到了适合我需求的解决方案。我基本上设计组件以允许管理员创建自定义表。因此,该组件将存储管理员定义的表模式。
我选择不使用Cck或其他表单扩展名,因为我希望该组件能够处理与其他组件的智能集成。因此,本质上,组件将直接与数据库连接,同时允许其他组件轻松调用我的组件。