【发布时间】: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
问题:
由于我不知道值字段的长度,我选择了 LONGTEXT 作为数据类型。这可以从布尔值到 LONGTEXT 大小不等,具体取决于管理员选择的数据类型。考虑到我的问题,这是一种很好的数据库设计技术吗?有没有更好的办法?
如果我将 LONGTEXT 用于布尔值这样小的内容,是否会影响性能?在最坏的情况下,如果管理员决定在他网站的所有字段上疯狂地使用布尔值,并且假设他有十亿用户创造了这些值。那么网站的性能会受到影响吗?
如果没有性能损失,那么我们为什么还要费心将数据存储到相关的数据类型中。为什么不对所有内容都使用 LONGTEXT?
提前感谢您的回答。
【问题讨论】:
-
看看stackoverflow.com/questions/923778/…,尤其是Bill Karwins的回答,阅读这个回答的链接文档。这是一种数据库反模式。
-
您可能想要使用 CCK 并省去麻烦。 extensions.joomla.org/extensions/authoring-a-content/…