首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MS Visio类别与SQL Server的关系

MS Visio类别与SQL Server的关系
EN

Stack Overflow用户
提问于 2010-01-20 16:12:39
回答 2查看 824关注 0票数 0

我正在使用MS Visio对数据库进行建模,模型的一部分包含事务类别-父表具有transactionId、timestamp、amount和transactionType。有三个子表-支票、银行转账和信用卡,它们都通过transactionId与父表相关。

这种关系在SQL Server中有没有具体的实现方式,或者它只是一个概念模型,让我来实现?如果是后者,如果表都与transactionId相关,为什么在父表中有一个transactionType列-这只是为了缩小我的查询范围吗?也就是说,如果父表中的某一行指定了" cheque“作为transactionType,我知道我只需要查询/连接cheque子表?

我突然想到--这只是一个ISA层次结构吗?在这种情况下,我将创建三个不同的表,每个表都包含ISA父实体中标识的列?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-20 16:25:11

这本质上是多表继承,尽管如果需要,您可以在域中将其建模为简单的引用关系。

拥有选择器字段/属性有很多很好的理由。显而易见的一点是,应用程序或服务可以获得有关如何加载细节的提示,这样就不必从每个可想到的表中加载每一行(当您有20种不同类型的事务时,请尝试此方法)。

另一个原因是,大多数情况下,最终用户不一定需要知道事务的详细信息,但确实需要知道事务的类型。如果您正在查看来自某些财务或账单系统的应收报告,大多数情况下,对于基本报告,您需要知道的所有内容就是以前的余额、金额、后续余额和交易类型。如果没有这些信息,就很难阅读。账本不一定会显示每笔交易的细节,有些系统甚至可能根本不会跟踪细节。

这种类型的模型最常见的替代方案是单个表,每个不同的事务类型都有一大堆可以为空的列。尽管我个人轻视这个模型,但它是许多只支持单表继承的对象关系映射器的要求。这是您希望(或不希望)在数据库中建模的唯一另一种方式。

票数 1
EN

Stack Overflow用户

发布于 2010-01-20 16:19:28

如果您想要查询所有交易,例如对每个交易类型的金额求和,则父表中的transactionType非常有用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select transactionType, sum(amount)
from transactions 
group by transactionType

在没有列的情况下,您仍然可以通过查询子表来执行此操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select 
    case when c.transactionId is not null then 'CHEQUE'
         when cc.transactionId is not null then 'CREDIT CARD'
         ...
    end
,   sum(amount)
from transactions t
left join cheque c on t.transactionId = c.transactionId
left join creditcard cc on t.transactionId = cc.transactionId
...
group by 
    case when c.transactionId is not null then 'CHEQUE'
         when cc.transactionId is not null then 'CREDIT CARD'
         ...
    end

正如您所看到的,这要困难得多,并且需要为您添加的每种类型的事务扩展查询。

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

https://stackoverflow.com/questions/2102842

复制
相关文章
【CSS】更改用户界面样式 ① ( 更改鼠标样式 | 更改鼠标样式应用场景 | 代码示例 )
在之前的 【CSS】轮播图案例开发 ( 基本设置 | 子绝父相 | 浏览器水平居中 | 圆角设置 | 绝对定位居中设置 ) 轮播图中 , 鼠标移动到 轮播图底部的小圆点上时 , 一般会变成小手形状的 , 这样用户体验更好 ;
韩曙亮
2023/04/16
2.4K0
【CSS】更改用户界面样式 ① ( 更改鼠标样式 | 更改鼠标样式应用场景 | 代码示例 )
【javascript】原生js更改css样式的两种方式
本文介绍了原生js更改CSS样式两种方式,分别是通过在javascript代码中直接更改CSS样式和利用CSS样式表进行更改。第一种方式是通过在javascript代码中的node.style.cssText="css表达式1;css表达式2;css表达式3",第二种方式是先在CSS样式表中对特定的类设置样式,然后再在javascript代码中通过node.classname="active"来使CSS样式表中对active类的样式设置附加到该node节点上。
啦啦啦321
2018/01/03
4.3K0
手把手教你使用CanvasAPI打造一款拼图游戏
我们今天的目标是使用HTML5画布技术制作一款拼图小游戏,要求将图像划分为3*3的9块方块并打乱排序,用户可以移动方块拼成完整图片。
前端皮皮
2021/11/02
1.6K0
手把手教你使用CanvasAPI打造一款拼图游戏
CSS样式更改——过渡、动画
上篇文章主要讲述了CSS样式更改中的2D转换,这篇文章我们来介绍下CSS样式更改中的过渡、动画基础用法。
前端皮皮
2020/11/25
1.2K0
CSS样式更改——文本Content
上篇文章主要讲述了CSS样式更改中的背景Background,这篇文章我们来谈谈文本Content内容的基础用法。
前端皮皮
2020/11/26
1.7K0
JavaScript的自定义对象
var obj1 = new Object(), obj2 = {};//Object 对象
小小鱼儿小小林
2020/06/23
6320
javascript--自定义对象
JS对象是一种复合类型,它允许你通过变量名存储和访问,换一种思路,对象是一个无序的属性集合,集合中的每一项都由名称和值组成(听起来是不是很像我们常听说的HASH表、字典、健/值对?),而其中的值类型可能是内置类型(如number,string),也可能是对象。这种方式不能用new方式创建,所以不可重用。
潇洒
2023/10/20
2560
jsNavigator对象的讲解_javascript自定义对象
navigator是一个独立的对象,他用于提供用户所使用的浏览器以及操作系统等信息,以navigator对象属性的形式来提供。
全栈程序员站长
2022/10/03
6900
CSS样式更改篇——背景Background
上篇文章主要讲述了CSS的基础用法,讲述了如何定义头文件,导入CSS文件,id和class选择器,元素选择器,后代选择器,子元素选择器,兄弟选择器,伪类选择器等等,让大家对CSS选择器有个简单的认识和了解。这篇接上篇文章,继续讲解CSS的基础用法。
前端皮皮
2020/11/26
1.5K0
ios 继承UITableViewController,更改tableview样式
// 继承UITableViewController,更改tableview样式 - (instancetype)initWithStyle:(UITableViewStyle)style { return [super initWithStyle:UITableViewStyleGrouped]; } 在新建的uitableviewcontroller中  加上上述的方法。   等于是重写父类的方法。可以实现tableview的style变成 UITableViewStyleGrouped 转载请注明
用户1219438
2018/02/01
1.2K0
如何更改滚动条样式?
如何自定义浏览器的滚动条呢,下面给大家讲解一下,其实很简单,通过设定css样式就可以实现。
申霖
2019/12/27
2.5K0
如何更改滚动条样式?
如何更改伪元素的样式
在前端开发中我们会经常用到伪元素,有时候需要通过js来修改伪元素的样式,那么有哪几种方式来修改伪元素的样式呢?
挥刀北上
2021/01/27
9.3K0
如何更改伪元素的样式
JavaScript 允许自定义对象分析
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数... 此外,JavaScript 允许自定义对象。 JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带有属性和方法的特殊数据类型。
用户7718188
2021/10/07
3840
博客园美化,更改外部主题,自定义JavaScript
在之前,我一直以为博客园他是那种万年不变的老旧风格,看着就有一种年代感,但是,昨天我莫名看到一个项目,我尝试进行了美化后,发现这玩意很好看啊。
JanYork_简昀
2022/05/18
1.2K0
博客园美化,更改外部主题,自定义JavaScript
Vue 父组件更改子组件样式
中 scoped 是受保护的,当 <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。这类似于 Shadow DOM 中的样式封装固更改子组件的style时是失效的
White feathe
2022/05/05
1.9K0
CSS样式更改——2D转换
上篇文章主要讲述了CSS样式更改中的裁剪、Z-Index、清除、改变元素的特性基础知识,这篇文章我们来介绍下CSS样式更改中2D转换的基础用法。
前端皮皮
2020/11/25
1K0
PHPCMS更改后台编辑器样式
PHPCMS默认的后台样式用着不习惯,根前台的视觉差太大?没关系,改一下就是了。 后台编辑器样式文件 staticsjsckeditorcontents.css 把前台样式表中控制文字的那一部分拷贝进去稍微修改下即可,当然你可以自定义编辑器背景什么的,看个人喜好了。 我自己比较喜欢的样式现在分享给大家
李维亮
2021/07/09
1.4K0
CSS样式更改——列表、表格和轮廓
上篇文章主要介绍了CSS样式更改篇中的字体设置Font&边框Border设置,这篇文章分享列表、表格和轮廓,一起来看看吧。
前端皮皮
2020/11/26
2.9K0
elementuitable样式更改_elementui下拉框
表格样式修改(表头高、表头边框、表格内边框、表格行高) //控制表头高度 .el-table /deep/ .el-table__header th { padding: 0; height: 40px; line-height: 40px; //表头边框设置 border:solid #cccccc; border-width:1px 0px 0px 1px; } //添加表格行边框 .el-table /deep/ td{ border:solid #cccccc; border-width:1px 0px 0px 1px; } // table右下外边框颜色 .el-table–border:after, .el-table–group:after, .el-table:before { background-color: #cccccc; } //表格上左外边框 .el-table–border, .el-table–group { border-color: #cccccc; } //表头背景色 :header-cell-style=”{background:’#e0e4e5’}” //表格行高还需要设置padding :cell-style=”{padding:‘0px’}”
全栈程序员站长
2022/09/30
6330
Vue 父组件更改子组件样式
中 scoped 是受保护的,当 <style> 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。这类似于 Shadow DOM 中的样式封装固更改子组件的style时是失效的
White feathe
2022/05/11
1.8K0

相似问题

JavaCV画布保持空白

20

CSS div样式,javascript画布颜色更改

30

Javascript画布空白图像

11

空白画布HTML,JavaScript

12

Tkinter对象空白画布?

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文