模型数据库中的异构类型

     2023-03-22     183

关键词:

【中文标题】模型数据库中的异构类型【英文标题】:Model Heterogeneous Type in Database 【发布时间】:2009-02-03 13:53:39 【问题描述】:

我正在尝试找出在我的系统中为一组“类”建模的最佳方法。请注意,我不是在谈论 OO 类,而是响应类(在调查中)。所以模型是这样的:

可以用三种不同类型的数据定义一个类:

一类编码响应(其中编码响应由字符串标签和整数值组成)

一类数值响应(定义为一组区间,其中每个区间的范围从最小值到最大值)

一类字符串响应(定义为一组正则表达式模式)

现在我们有:Class 表(用于定义唯一的类)和一个 ClassCoded、ClassNumeric 和 ClassString 表(都带有 ClassID 作为 Class 表的外键)。

我的问题是,现在一个类在技术上可以被这个系统编码和数字。有没有办法定义一组表来处理这种情况?

【问题讨论】:

您能否详细说明您将放置这些表格的实际用途? 【参考方案1】:

处理子类型有两种主要方法,通过为每个可能的属性添加列来使用稀疏列(最好使用检查约束以确保只有一种类型具有值),或者为超类型创建一个表,然后为超类型创建三个表子类型,每个都有返回超类型表的外键。然后添加一个检查约束,确保三个可能的类型列中只有一个不为空。

我个人根据子类型的相似程度来决定使用这两种实现中的哪一种。如果 90% 的列是共享的,我使用稀疏列方法,如果共享的信息很少,我使用多表方法。

【讨论】:

感谢 Shane,我们现在最终使用了每个子类型实现的表,我不确定用户是否喜欢您提到的替代方案。我只是想看看是否有一些优雅的方式来以另一种方式处理这个问题【参考方案2】:

关系数据库不能优雅地处理这个问题。最简单的方法是为所有不同类型的数据定义列,并且只填充适当的列。

【讨论】:

【参考方案3】:

我不明白问题是什么。这只是混合继承。为什么一个类不能只拥有一个 ClassCoded 和 ClassNumeric 的条目?

无论如何,业务规则的实施不会在数据库中完成,因此您可以轻松地在业务层代码中实施这些约束,并为在这两个表中都有条目的类使用特殊规则。

【讨论】:

我们有一个要求,一个类必须是一个并且只有一个子类型。例如,年龄(一个数字变量,具有数字类)不应该将一类编码响应应用于它,如婚姻状况(一个编码变量)

如何处理存储库模式中的异构数据源?

...理应用程序的数据。映像您有两个数据源:本地缓存(或数据库)远程服务(RestAPI)该服务不允许进行更改,只允许检索数据,因此数据源的一个非常简单的接口可以是interfaceDat 查看详情

swift中的异构集合文字

】swift中的异构集合文字【英文标题】:Heterogeneouscollectionliteralinswift【发布时间】:2018-10-1821:26:07【问题描述】:我正在尝试按如下方式读取嵌套数组,但出现错误。varinputArray=[1,[4,3],6,[5,[1,0]]]funcnestedArray(inputArray:[Any])错误:异... 查看详情

本周小贴士#144:关联容器中的异构查找(代码片段)

作为TotW#144最初发表于2018年3月23日由SamuelBenzaquen创作介绍关联容器使用一个关键字来关联一个元素。插入或从容器中查找元素需要等效键。通常,容器要求键是特定类型的,这会导致调用处的效率低下,需要在接近等... 查看详情

本周小贴士#144:关联容器中的异构查找(代码片段)

作为TotW#144最初发表于2018年3月23日由SamuelBenzaquen创作介绍关联容器使用一个关键字来关联一个元素。插入或从容器中查找元素需要等效键。通常,容器要求键是特定类型的,这会导致调用处的效率低下,需要在接近等... 查看详情

java类型安全的异构容器

转载自:http://blog.csdn.net/sh_c1991/article/details/45965743 我们的想法是用key自身的class 类型作为key。因为Class 是参数化的类型,它可以确保我们使Context方法是类型安全的,而无需诉诸于一个未经检查的强制转换为T。这种形... 查看详情

朴素贝叶斯:观察变量的异构 CPD

...2015-04-2208:27:14【问题描述】:我正在使用一个朴素贝叶斯模型进行二元分类,并结合使用离散变量和连续变量。我的问题是,我可以对连续和离散观察变量使用不同的条件概率分布(CPD)函数吗?例如,我对连续变量使用高斯CPD,... 查看详情

搜索与问答——neurips2021beir:信息检索模型零样本评估的异构基准(代码片段)

...练数据,即可学习(或适应)非对称语义搜索模型的方法。在非对称语义搜索中,用户提供一个(简短的)查询,如一些关键字或问题。然后我们想要检索提供答案的更长的文本段落。例如:query:Wh... 查看详情

华为云ugo:醒醒!你的异构数据库迁移难题有救了

摘要:华为云推出的数据库和应用迁移UGO,正是一款专注于异构数据库结构迁移和应用SQL转换的专业云服务。数字化时代下,上云已成为企业管理者的基本共识,随着技术日新月异,上云也变得轻松简单起来,但异构数据库迁移... 查看详情

为什么说datax是目前最好的异构数据源数据交换工具(代码片段)

...做过一个项目,其中有个需求就是每天定时把sqlserver中的数据同步到Mysql中,当时写了一段Java的代码来实现,一套Java代码中需要写两个数据源的连接以及两套sql的代码 查看详情

深度学习的异构加速技术:螺狮壳里做道场

...云、高速视觉感知等方向的构架设计和优化。“深度学习的异构加速技术”系列共有三篇文章,主要在技术层面,对学术界和工业界异构加速的构架演进进行分析。一、综述在“深度学习的异构加速技术(一)”一文所述的AI加... 查看详情

云边端一体化的异构ai计算

...主要介绍阿里云AI异构计算编译框架HALO以及面向深度学习的异构硬件统一接口规范ODLA,通过具体的实例说明如何利用异构编译和硬件架构抽象实现上层应用在异构计算资源上的平滑迁移。后半部分介绍ODLA.CV(多媒体Pi 查看详情

NSArrayControllers 和 Core Data 对象的异构数组

】NSArrayControllers和CoreData对象的异构数组【英文标题】:NSArrayControllersandheterogeneousarraysofCoreDataobjects【发布时间】:2011-06-2014:39:22【问题描述】:我正在尝试创建一个MacOSCoreData应用程序,该应用程序具有一组父对象(称为级别)... 查看详情

深度学习的异构加速技术:ai需要一个多大的“心脏”?

...云、高速视觉感知等方向的构架设计和优化。“深度学习的异构加速技术”系列共有三篇文章,主要在技术层面,对学术界和工业界异构加速的构架演进进行分析。一、概述:通用=低效作为通用处理器,CPU(CentralProcessingU 查看详情

如何对可变参数模板函数的异构参数包进行通用计算?

】如何对可变参数模板函数的异构参数包进行通用计算?【英文标题】:Howtomakegenericcomputationsoverheterogeneousargumentpacksofavariadictemplatefunction?【发布时间】:2012-12-2500:47:21【问题描述】:前提:在尝试了一些可变参数模板之后,我... 查看详情

[案例]如何异构一个数十亿级别的数据库

数据源为mysql,目标介质为elasticsearch。1、我们能利用的资源1.1源数据模型源库是别人(库存)的数据,分为A,B,C三种类型的库存模型,需要将三种类型的模型整合成一中通用库存模型方便我方(商家)做业务。典型的互联网企业是协... 查看详情

如何使用基于字段值选择的异构委托制作 QtQuick TableView / TreeView

】如何使用基于字段值选择的异构委托制作QtQuickTableView/TreeView【英文标题】:howtomakeQtQuickTableView/TreeViewwithheterogeneousdelegatechosenbasedonfieldvalue【发布时间】:2020-04-0814:51:30【问题描述】:如何根据另一个单元格的值选择单元格委... 查看详情

mybatis学习随笔

...这样一种框架,是SSM框架集成中的重要部分。ORM可以解决数据库与程序类之间的异构性,比如java中的String对应Mysql中varchar,Oracle中varchar2,SQLServer中的nvarchar.;用于实现面向对象编程语言中不同类型 查看详情

基于ga遗传算法的异构网络垂直切换优化算法的matlab仿真

目录一、理论基础二、案例背景1.问题描述2.思路流程三、MATLAB核心代码 查看详情