首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在表中存储多种格式

在表中存储多种格式
EN

Stack Overflow用户
提问于 2010-10-11 01:16:02
回答 1查看 101关注 0票数 1

因此,基本问题是:我希望能够将各种字段存储在数据库中。这些可以是短文本框(最多150个字符,大概一般是50个字符)和长文本字段(可以存储一整页的文本)。理想情况下,以后可以添加更多类型。

这些字段是由普通的field_group id组成的,它们的类型不应该与分类有任何关系。

那么在MySQL中表示这个问题的最好方法是什么呢?一个具有不同类型的short_textlong_text列的表,其中一个是NULL?还是有一个更优雅的解决方案?

(我希望这主要是由ease驱动,以便使用给定的field_group_id来选择所有字段。)

澄清

实际上,我试图允许用户创建自己的表,但不需要实际创建表。

因此,您将有一个'Book‘字段组,其中字段'Name’(短文本),‘汇总’(长文本)。那么你就可以在那本书中创建条目了。我意识到这本质上是MySQL的重点,但是我需要有很多这样的东西,并且不希望用户在我的数据库中创建整个表。

EN

Stack Overflow用户

回答已采纳

发布于 2010-10-11 20:17:15

你要找的东西叫做EAV。使用EAV模型,您可以在世界上只使用插入构建任何异常的数据库。但这真的很可怕,因为很多原因,但你的听起来太可笑了,它可能会起作用。

构建实体表

在这里你会列出

  • Car
  • Person
  • Plant

构建属性表。

在这里,您可以从实体和属性列表中列出PK。

我会用这个词来代替PK这个数字。

Cylinders

  • Car引擎
  • 汽车引擎
  • 汽车制造
  • Person

F 219

然后,在第三个表中,列出每个表的实际值,同样使用单词,但有数字。

  • 汽车系列发动机气缸4
  • 汽车车门4
  • 汽车制造

如果您想变得棘手,而不是对一个列的值,您可以有4列。

  • a
  • a varchar
  • a date
  • a clob

F 241

然后,在属性表中添加一个列,说明要放置数据的列。

如果您计划此数据库为"Multitenent“,则需要添加一个OWNER表作为实体表的父表,这样您和我都可以拥有一个Car实体。

但这对查询、索引、除了玩具应用程序以外的其他任何东西都很糟糕。

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3902963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档