首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于存储表的自定义字段的数据库设计

用于存储表的自定义字段的数据库设计
EN

Stack Overflow用户
提问于 2010-05-28 02:59:48
回答 4查看 1.5K关注 0票数 2

这个问题是基于我对问题Getting weird issue with TO_NUMBER function in Oracle的回答而提出的

由于每个人都建议将数值存储在VARCHAR2列中不是一个好的做法(我完全同意),我想知道我们团队做出的一个基本设计选择,以及是否有更好的设计方法。

问题陈述:我们有许多表,我们想要给出一定数量的自定义字段。所需自定义字段的数量是已知的,但用户可以使用映射到列的属性类型

例如,我在下面写下一个假设的场景

假设您有一台笔记本电脑,它为每个笔记本电脑记录存储了50个属性值。每台笔记本电脑的属性都是由创建笔记本电脑的管理员创建的。

用户创建了一个笔记本电脑产品,假设lap1具有字符串、字符串、数字、数字、字符串等属性

第二个用户使用字符串、数字、字符串、字符串和数字属性创建了laptop lap2

目前,我们设计中的数据被持久化如下

代码语言:javascript
复制
Laptop Table
Id Name field1  field2 field3  field4 field5
1  lap1 lappy   lappy  12      13     lappy
2  lap2 lappy2  13     lappy2  lapp2  12

这个例子模拟了我们的需求和设计

现在,如果有人在field2上查找lap2表的记录进行比较,我们需要应用TO_NUMBER。

代码语言:javascript
复制
select * from laptop 
where name='lap2'  
and TO_NUMBER(field2) < 15

在某些情况下,当查询计划决定首先应用TO_NUMBER而不是其他筛选器时,to_number会失败。

问题

这是一个有效的设计吗?

解决此问题的其他替代方法是什么?

我们的一位队友建议在这种情况下动态创建表格。这是个好主意吗?

流行的ORM工具如何提供自定义字段或flex字段处理?

我希望我能够理解这个问题。

很抱歉发这么长的短信..

这导致我们在查询时使用TO_NUMBER

EN

Stack Overflow用户

发布于 2010-05-28 03:11:38

如果所有列类型都是在创建表的时候决定的,那么动态生成表对我来说听起来很不错。

但是,如果两个用户使用具有不同字段的同一个表,则可以只为自定义字段创建新表,并将它们连接到主表。这更像是一种面向对象的方法。

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

https://stackoverflow.com/questions/2924027

复制
相关文章

相似问题

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