社区
C#
帖子详情
数据字典设计问题
thinkc
2009-11-12 11:46:29
在系统设计过程中,发现系统中存在大量的自动表,其结构非常的相似。考虑用一个表设计,但是同事说一个表看的不明白。我认为在数据库中统一字典表是有意义的。
主要观点为虽然每个字典意义不同,那表现在对人的理解上,但结构对程序来说是重复,从重构的角度的来说,放在一块比较好。
可是换种角度,如果是分表设计,也可以在程序设计时所有的字典的维护用一套程序。
字典设计到底是多表存储好还是单表存储好,综合考虑后,个人认为单表大一点,希望各位给个建议。
...全文
396
27
打赏
收藏
数据字典设计问题
在系统设计过程中,发现系统中存在大量的自动表,其结构非常的相似。考虑用一个表设计,但是同事说一个表看的不明白。我认为在数据库中统一字典表是有意义的。 主要观点为虽然每个字典意义不同,那表现在对人的理解上,但结构对程序来说是重复,从重构的角度的来说,放在一块比较好。 可是换种角度,如果是分表设计,也可以在程序设计时所有的字典的维护用一套程序。 字典设计到底是多表存储好还是单表存储好,综合考虑后,个人认为单表大一点,希望各位给个建议。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
boringame
2009-12-03
打赏
举报
回复
逻辑上两种都可以,
但这个怎样好呢。。。
还真没个准,
说以我就主观意见了。。
thinkc
2009-11-16
打赏
举报
回复
自己路过
thinkc
2009-11-13
打赏
举报
回复
顶上去
boringame
2009-11-12
打赏
举报
回复
我的的主观意见是放在一起。。。
表一大堆看的就很烦。。。
wuyq11
2009-11-12
打赏
举报
回复
syscolumns和sysobjects里已有各种表的字段、类型等值
遍历就要获取所有表属性
根据需要构建不同表,很多使用的就可使用外键关联。
表到实体时就可使用泛型
freeboy827
2009-11-12
打赏
举报
回复
表结构一样就放一起吧,加个标识字段就行了
只要数据量不大就行,可以用统一的增删改界面
thinkc
2009-11-12
打赏
举报
回复
[Quote=引用 9 楼 supertyro 的回复:]
个人认为如果数据字典只做成一张表
那么扩展就不好办了,比如新需求需要新加一种类型的数据字典,而字段和以前的完全不一致,怎么办?
不是依然需要新加表么,
而且如果数据字典配合缓存使用的话,一般都比较注重效率,所有冗余这种事最好想清楚
[/Quote]
一般来说,字典表中只要用decimal和string类型就代表其他的类型(int,bool,datatime),通过预设字段的方式,同一个字段在不同的类型中表示的含义可以不一致。当然需要另外定义表对象字段进行说明。
SuperTyro
2009-11-12
打赏
举报
回复
个人认为如果数据字典只做成一张表
那么扩展就不好办了,比如新需求需要新加一种类型的数据字典,而字段和以前的完全不一致,怎么办?
不是依然需要新加表么,
而且如果数据字典配合缓存使用的话,一般都比较注重效率,所有冗余这种事最好想清楚
thinkc
2009-11-12
打赏
举报
回复
另外多说一句,我的表结构大体如下。
Id,Type,Code,Name,OrderId,F1...F10(字符型),F11...F20(Decimal型)
thinkc
2009-11-12
打赏
举报
回复
[Quote=引用 5 楼 l171147904 的回复:]
按照你的说法,其实所有表 结构都相同
SQL。。。都是二维的!!!
只是字段不同。。。
如果出于 易扩展和维护;考虑使用动态表!
有一个问题,你设计的1或N长表,将来数据量非常庞大(所以不建议 经常变动的表做次设计)
或你可考虑,分表保存(按模块分,或按数据类型分)
[/Quote]
另外数据量庞大,这个也不可能,就整个系统的字典加起了1-2万了不起了。
thinkc
2009-11-12
打赏
举报
回复
[Quote=引用 5 楼 l171147904 的回复:]
按照你的说法,其实所有表 结构都相同
SQL。。。都是二维的!!!
只是字段不同。。。
如果出于 易扩展和维护;考虑使用动态表!
有一个问题,你设计的1或N长表,将来数据量非常庞大(所以不建议 经常变动的表做次设计)
或你可考虑,分表保存(按模块分,或按数据类型分)
[/Quote]
呵呵,你和我同事反驳我的意见一摸一样。
从业务角度来说,表是不一样的。
字典表很仅仅是对其他某一个表的字段信息的描述,所有可以提取相同概念。
l171147904
2009-11-12
打赏
举报
回复
按照你的说法,其实所有表 结构都相同
SQL。。。都是二维的!!!
只是字段不同。。。
如果出于 易扩展和维护;考虑使用动态表!
有一个问题,你设计的1或N长表,将来数据量非常庞大(所以不建议 经常变动的表做次设计)
或你可考虑,分表保存(按模块分,或按数据类型分)
liherun
2009-11-12
打赏
举报
回复
迷茫中
typeof
2009-11-12
打赏
举报
回复
具体问题具体分析
thinkc
2009-11-12
打赏
举报
回复
太笼统了吧,你的倾向是什么?
有链接地址也行。
ztenv
2009-11-12
打赏
举报
回复
要看具体的用法,及以后的扩展等多方面,
laomeng520
2009-11-12
打赏
举报
回复
路过,学习
thinkc
2009-11-12
打赏
举报
回复
我的单表字典的应用一个场景就是,将列设计转换成行设计是的外键约束问题。
列设计.EmpId,SexId,DepartId,LevelId
转换成行设计就是
EmpId,FieldType,FieldValue
这样在外键关联式只需要FiledValue字段外键关联字典的DictId就可以保证全约束。
PS:这个场景只是描述一下,可能不太恰当,但是大家应该都能看懂。
thinkc
2009-11-12
打赏
举报
回复
[Quote=引用 20 楼 cymandhxl 的回复:]
数据库运行的不是数据字典。首先考虑数据库。然后在表的每条记录属性上都写好注释。
然后用程序自动生成数据字典。如果数据字典确实有必要的话。
[/Quote]
建立字典表主要想利用数据库的外键约束
thinkc
2009-11-12
打赏
举报
回复
[Quote=引用 17 楼 wanghui0380 的回复:]
我不做设计
我考虑的问题是:这个数据字典变化的有多频繁,各项间的关联度有多大。
[/Quote]
字典一旦确认,其项目(字段)基本上保持不变。
字典项之间几乎没有什么关联度,只有业务知道如何利用。
加载更多回复(7)
MATLAB 2023:数据类型-实现字典
介绍在MATLAB中实现字典数据类型的方法,包括字典的创建、索引和字典元素的增删改等内容。所在套餐:MATLAB核心知识点系列课程-CSDN程序员研修院,不断更新和增加课程。
java
设计
数据字典
_下拉框“
数据字典
”
设计
数据字典
的原始含义是指对数据库表结构的描述;在我见到的一些企业和在网上看到的资料里,大家习惯将
数据字典
理解为对下拉框项的描述。比如人员学历包括哪些内容等,为了跟大家一致同时尽量避免歧义,我用下拉框
数据字典
这个词进行说明。首先是一个
数据字典
设计
的实现方法:
数据字典
的分类和详细信息保存在数据库一张表中,实现无限极树形节点,实现基于global的查询。实际使用中,从数据库中读取值并渲染下拉框,主表中保存...
java
设计
数据字典
_应用开发中
数据字典
项
设计
实现方案
应用开发中
数据字典
项
设计
实现方案在 应用开发中,总会遇到许多
数据字典
项,比如对象状态、对象类型等等,这些项一般都是固定的若干可选值选项,比如对象状态可能有新建、修改、删除等状态,这 些
数据字典
项一旦定义完毕改动的频率非常低;在应用开发中,为了处理方便,一般要对这些
数据字典
项值选项进行数字编码(例如:0表示新建,1表示修改,2表示删除等),以方便应用程序中使用。而UI显示对象信息时不能显示对象状态等...
数据字典
表
设计
(程序中的)
数据字典
:1、对应用程序不同类型数据集合,进行分类,管理 2、用code标识数据,在存储时存储code就行了好处:1、数据集合统一在一个地方管理,便于阅读所有数据集合,理解程序。2、用code标识数据,在存储时存储code就行了,这样即使数据改变了,也不影响程序表
设计
时达到的目标:使配置的数据(字典名称,字典值),不因数据的改变,影响数据的存储(这样就需要
设计
字典名称的code、字典 ...
数据字典
的主要作用是什么?
数据字典
是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
数据字典
(Data dictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录。主动
数据字典
是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的
数据字典
。
数据字典
的主要作用:
数据字典
和数据流图共同构成系统的逻辑模型。没有流图
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章