数据库设计又一个新思路

==========================================聊天记录很有价值,以下是全部聊天记录=========================================

码妖】[广州]老衲(424469013) 10:09:28
服务器上定义好 数据库的各个表 主键 约束 外键 视图等
【码妖】[广州]老衲(424469013) 10:10:07
客户端 依照服务器上的样板 自动 增加 或 删除 ,各个表字段 主键 外键 视图等
【码妖】[广州]老衲(424469013) 10:10:15
有谁做过没
【码妖】[广州]老衲(424469013) 10:10:21
看看大家都是什么思路

【码妖】[广州]老衲(424469013) 10:13:01

或者 像 herbinate 一样,我直接利用 delphi 建立数据表类,每一个表 对应一个类

【码妖】[广州]老衲(424469013) 10:13:16

然后 这个类 可以直接 映射出来数据表

【码妖】[广州]老衲(424469013) 10:13:41

不知道 delphi界 有没有 这样的 第三方

【码虫】[厦门]叫兽叔叔(378464060) 10:14:21

ORM 有啊。。 RODA 就是啊。

【码帝】广州-咏南(254072148) 10:15:00

好像这样不是RAD的作法

【码帝】广州-咏南(254072148) 10:15:11

RAD不这样

【码霸】bǘ譮ロ乎ㄨi(274001335) 10:16:22

tms有

【码神】[东莞]青春(82611904) 10:16:23

我只拖控件

【码妖】[广州]老衲(424469013) 10:17:06

软件经常升级,表字段、外键、主键、约束、索引、视图等,经常变化,如何做到 软件升级了,数据库表的关系 跟着一起升级

【码帝】广州-咏南(254072148) 10:17:32

怎么都得改

【码农】[青岛]虾舞天涯(441010741) 10:17:37

键都变?也太。。。

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:18:04

额 不是应该先服务端升级 然后再客户端升级么

【码妖】[广州]老衲(424469013) 10:18:15

如果有一套框架 像herbinate一样,利用类来映射表,类的关系直接映射到表的关系上

【码帝】广州-咏南(254072148) 10:18:39

还是要改

【码妖】[广州]老衲(424469013) 10:18:44

这样,软件升级,我们只需 升级类,数据库的设计会自动跟随升级

【码神】[东莞]青春(82611904) 10:19:09

NoSQL

【码霸】海天子(28588343) 10:19:12

这种做法太累了吧

【码妖】[广州]老衲(424469013) 10:19:15

我目前做到了 数据库 跟随升级,但是没有做到 类映射

【码霸】海天子(28588343) 10:19:30

一个表映射一个类

【码霸】海天子(28588343) 10:19:45

太累了

【码霸】海天子(28588343) 10:20:05

delphi一个控件对应无数表

【码妖】[广州]老衲(424469013) 10:20:10

这样开发人员 只需关注 开发 无需关注数据库

【码妖】[广州]老衲(424469013) 10:20:23

数据库 的设计 随开发而变

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:20:24

ORM维护不方便,如果表要加字段,就要改程序,很烦的

【码妖】[广州]老衲(424469013) 10:20:29

软件 天天疯狂升级 无压力

【码霸】bǘ譮ロ乎ㄨi(274001335) 10:20:53

@老衲 

【码妖】[广州]老衲(424469013) 10:20:55

@[深圳]MarkWu 只改程序啊,总比 程序 + 数据库 都得改好

【码帝】广州-咏南(254072148) 10:20:55

RAD就是RAD

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:20:58

ORM性能没有直接用SQL高

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:21:01

客户不会主动去升级的吧

【码帝】广州-咏南(254072148) 10:21:07

就当RAD用

【码霸】海天子(28588343) 10:21:16

程序员不关心数据库表,难道实施人员关心啊

【码霸】海天子(28588343) 10:21:17

真提

【码霸】海天子(28588343) 10:21:23

真是的

【码神】[东莞]青春(82611904) 10:21:39

【码妖】[广州]老衲(424469013) 10:21:48

@广州-咏南 我的意思不是数据库操作,插入、查询等 不是这些,仅仅 操作数据表的关系设计

【码霸】海天子(28588343) 10:21:49

这人的思路问题大大的

【码帝】广州-咏南(254072148) 10:21:49

见山非山,只是第二种境界

【码神】[东莞]青春(82611904) 10:21:54

什么时候程序员点一下鼠标就好了。。。

【码霸】海天子(28588343) 10:22:14

要程序员做什么啊

【码霸】海天子(28588343) 10:22:22

直接实施人员就好了

【码帝】广州-咏南(254072148) 10:22:37

直接用户就行了?

【码帝】广州-咏南(254072148) 10:22:43

想的好美

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:23:08

客户端能修改表结构   说明连接数据的的账号权限挺大的

【码神】[长春]swish(109867294) 10:23:20

@老衲 你这个想的不是不可以实现,但是灵活性基本没了,而且风险挺高

【码妖】【宁波】空(9534557) 10:23:29

老外经常讲:the first is right,then faster

【码霸】海天子(28588343) 10:23:35

一个用表映射一个类,这是理想的做法

【码霸】海天子(28588343) 10:23:58

不具可操作性

【码妖】【宁波】空(9534557) 10:24:03

总归是先做正确,然后优化让他快

【码妖】【宁波】空(9534557) 10:24:25

其实D的内裤都是如此

【码神】[东莞]青春(82611904) 10:24:29

@【宁波】空 只想so easy 

【码霸】海天子(28588343) 10:24:49

delphi一个控件,一条语句,几秒钟就能把数据显示出来了

【码妖】【宁波】空(9534557) 10:25:02

所以才有OrM

【码霸】海天子(28588343) 10:25:05

你去写个类对应,累不累

【码霸】[宁波]kazarus<kazarus@qq.com> 10:25:17

我目前写个工具,生成的.

【码帝】广州-咏南(254072148) 10:25:37

ORM,宝兰叫卖过

【码神】[长春]swish(109867294) 10:26:13

ORM 搞 Java 的人很喜欢

【码霸】[宁波]kazarus<kazarus@qq.com> 10:26:21

幸亏delphi xe 支持了 helper, 生成的类 能不动就不动,主要功能写在helper里.

【码妖】【宁波】空(9534557) 10:26:23

@[东莞]青春 映射其实最简单的做法就是建个映射表,soeasy!

【码妖】[广州]老衲(424469013) 10:26:35

【码妖】[广州]老衲(424469013) 10:13:01
或者 像 herbinate 一样,我直接利用 delphi 建立数据表类,每一个表 对应一个类
【码妖】[广州]老衲(424469013) 10:13:16
然后 这个类 可以直接 映射出来数据表
【码妖】[广州]老衲(424469013) 10:13:41
不知道 delphi界 有没有 这样的 第三方
【码虫】[厦门]叫兽叔叔(378464060) 10:14:21
ORM 有啊。。 RODA 就是啊。
【码帝】广州-咏南(254072148) 10:15:00
好像这样不是RAD的作法
【码帝】广州-咏南(254072148) 10:15:11
RAD不这样
【码霸】bǘ譮ロ乎ㄨi(274001335) 10:16:22
tms有
【码神】[东莞]青春(82611904) 10:16:23
我只拖控件
【码妖】[广州]老衲(424469013) 10:17:06
软件经常升级,表字段、外键、主键、约束、索引、视图等,经常变化,如何做到 软件升级了,数据库表的关系 跟着一起升级
【码帝】广州-咏南(254072148) 10:17:32
怎么都得改
【码农】[青岛]虾舞天涯(441010741) 10:17:37
键都变?也太。。。
【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:18:04
额 不是应该先服务端升级 然后再客户端升级么
【码妖】[广州]老衲(424469013) 10:18:15
如果有一套框架 像herbinate一样,利用类来映射表,类的关系直接映射到表的关系上
【码帝】广州-咏南(254072148) 10:18:39
还是要改
【码妖】[广州]老衲(424469013) 10:18:44
这样,软件升级,我们只需 升级类,数据库的设计会自动跟随升级
【码神】[东莞]青春(82611904) 10:19:09
NoSQL
【码霸】海天子(28588343) 10:19:12
这种做法太累了吧
【码妖】[广州]老衲(424469013) 10:19:15
我目前做到了 数据库 跟随升级,但是没有做到 类映射
【码霸】海天子(28588343) 10:19:30
一个表映射一个类
【码霸】海天子(28588343) 10:19:45
太累了
【码霸】海天子(28588343) 10:20:05
delphi一个控件对应无数表
【码妖】[广州]老衲(424469013) 10:20:10
这样开发人员 只需关注 开发 无需关注数据库
【码妖】[广州]老衲(424469013) 10:20:23
数据库 的设计 随开发而变
【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:20:24
ORM维护不方便,如果表要加字段,就要改程序,很烦的
【码妖】[广州]老衲(424469013) 10:20:29
软件 天天疯狂升级 无压力
【码霸】bǘ譮ロ乎ㄨi(274001335) 10:20:53
@老衲 
【码妖】[广州]老衲(424469013) 10:20:55
@[深圳]MarkWu 只改程序啊,总比 程序 + 数据库 都得改好
【码帝】广州-咏南(254072148) 10:20:55
RAD就是RAD
【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:20:58
ORM性能没有直接用SQL高
【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:21:01
客户不会主动去升级的吧
【码帝】广州-咏南(254072148) 10:21:07
就当RAD用
【码霸】海天子(28588343) 10:21:16
程序员不关心数据库表,难道实施人员关心啊
【码霸】海天子(28588343) 10:21:17
真提
【码霸】海天子(28588343) 10:21:23
真是的
【码神】[东莞]青春(82611904) 10:21:39

【码妖】[广州]老衲(424469013) 10:21:48
@广州-咏南 我的意思不是数据库操作,插入、查询等 不是这些,仅仅 操作数据表的关系设计
【码霸】海天子(28588343) 10:21:49
这人的思路问题大大的
【码帝】广州-咏南(254072148) 10:21:49
见山非山,只是第二种境界
【码神】[东莞]青春(82611904) 10:21:54
什么时候程序员点一下鼠标就好了。。。
【码霸】海天子(28588343) 10:22:14
要程序员做什么啊
【码霸】海天子(28588343) 10:22:22
直接实施人员就好了
【码帝】广州-咏南(254072148) 10:22:37
直接用户就行了?
【码帝】广州-咏南(254072148) 10:22:43
想的好美
【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:23:08
客户端能修改表结构   说明连接数据的的账号权限挺大的
【码神】[长春]swish(109867294) 10:23:20
@老衲 你这个想的不是不可以实现,但是灵活性基本没了,而且风险挺高
【码妖】【宁波】空(9534557) 10:23:29
老外经常讲:the first is right,then faster
【码霸】海天子(28588343) 10:23:35
一个用表映射一个类,这是理想的做法
【码霸】海天子(28588343) 10:23:58
不具可操作性
【码妖】【宁波】空(9534557) 10:24:03
总归是先做正确,然后优化让他快
【码妖】【宁波】空(9534557) 10:24:25
其实D的内裤都是如此
【码神】[东莞]青春(82611904) 10:24:29
@【宁波】空 只想so easy 
【码霸】海天子(28588343) 10:24:49
delphi一个控件,一条语句,几秒钟就能把数据显示出来了
【码妖】【宁波】空(9534557) 10:25:02
所以才有OrM
【码霸】海天子(28588343) 10:25:05
你去写个类对应,累不累
【码霸】[宁波]kazarus<kazarus@qq.com> 10:25:17
我目前写个工具,生成的.
【码帝】广州-咏南(254072148) 10:25:37
ORM,宝兰叫卖过
【码神】[长春]swish(109867294) 10:26:13
ORM 搞 Java 的人很喜欢
【码霸】[宁波]kazarus<kazarus@qq.com> 10:26:21
幸亏delphi xe 支持了 helper, 生成的类 能不动就不动,主要功能写在helper里.
【码妖】【宁波】空(9534557) 10:26:23
@[东莞]青春 映射其实最简单的做法就是建个映射表,soeasy!
【码妖】[广州]老衲(424469013) 10:26:35

【码神】[长春]swish(109867294) 10:27:03

多版本怎么管理,你想过吗?

【码妖】[广州]老衲(424469013) 10:27:06

用类或结构的方式 来表达 数据表和表之间的关系

【码神】[长春]swish(109867294) 10:27:20

如果只是你说的那些东西,在客户端有足够的权限的情况下,还是可以实现的

【码霸】海天子(28588343) 10:27:27

@【码妖】老衲,你把简单的东西复杂化了

【码妖】【宁波】空(9534557) 10:27:33

最简单的做法就是建立map表格,放在数据库规则其他地方

【码妖】[广州]老衲(424469013) 10:27:37

@[长春]swish 软件版本A 那么数据库的关系就是版本A ,软件版本B 那么数据库的版本就是B 

【码妖】[广州]老衲(424469013) 10:27:44

数据库 随软件而变化 

【码帝】广州-咏南(254072148) 10:28:05

JAVA的眼光看DELPHI?

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:28:06

放服务端应该没问题

放客户端 有点危险

【码妖】[广州]老衲(424469013) 10:28:09

客户不升级照常使用,客户升级了 数据库也会跟着升级 然后照常使用

【码妖】【宁波】空(9534557) 10:28:09

Pb在出来的时候就有了,他只是为了Ide

【码霸】海天子(28588343) 10:28:09

不是应该软件随数据库变化吗

【码霸】海天子(28588343) 10:28:21

不是先设置数据库再写软件吗

【码霸】海天子(28588343) 10:28:30

你的思路果真不一样

【码妖】【宁波】空(9534557) 10:28:33

就当对象的序列化

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:28:52

客户端不是有多个版本同时存在的情况吗

【码霸】[北京]鱼刺(346291668) 10:28:53

我看到图下的有两个断开的数据库,名称太牛了

【码神】[东莞]青春(82611904) 10:29:25

@[北京]鱼刺 就怕流氓有文化

【码妖】[广州]老衲(424469013) 10:29:38

@海天子 数据库随软件 而变化才对 

【码妖】【宁波】空(9534557) 10:29:45

数据库程序不管任何语言,第一步就是建库

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:29:51

哈哈

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:29:57

ORM有3种开发模式,DB First, Module First, Code First

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:30:00

这个是 黄库吧

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:30:21

我们Delphi开发一般是先设计数据库,再写程序代码

【码妖】【宁波】空(9534557) 10:30:35

库其实就是地基

【码霸】海天子(28588343) 10:30:55

@老纳 数据库随变软件???????
我也是头会一会听说

【码神】[荆州]不得闲(75492895) 10:31:01

话说,数据库升级,我现在就用类似Android那红模式

【码妖】[广州]老衲(424469013) 10:31:03

@[深圳]MarkWu 我们Delphi开发一般是先设计数据库,再写程序代码 除非软件是一次性设计好了 不会再升级了,针对天天升级 数据库 天天变化的 软件 怎么搞

【码妖】[广州]老衲(424469013) 10:31:09

SB 

【码妖】【宁波】空(9534557) 10:31:09

模型和代码,其实都可以用库设计解决

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:31:11

老衲的想法是 Code First模式,这在java, .net中很流行

【码霸】海天子(28588343) 10:31:41

请问,一个数据库,有delph写的程序,有html的程序,有c++写的程序,这个数据库怎么随软件变???

【码妖】【宁波】空(9534557) 10:31:45

建库的动态模型啊

【码妖】[广州]老衲(424469013) 10:31:56

我目前就做到了

【码妖】【宁波】空(9534557) 10:31:57

不是死干

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:32:05

java,  是放在服务器端的

【码霸】海天子(28588343) 10:32:14

这完全不是一个正常的思维做的事情

【码妖】[广州]老衲(424469013) 10:32:27

【码妖】[广州]老衲(424469013) 10:32:43

数据表关系 完全 随服务器样板 动态变化

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:32:48

因为服务器端服务程序 不会有多个版本存在的情况

【码妖】[广州]老衲(424469013) 10:33:07

但是 我想进一步 看看有没有 这样的框架

【码妖】[广州]老衲(424469013) 10:34:06

@[长春]swish @【宁波】空 你们有经验 都没有 用到过  软件天天升级 数据库 表关系 天天变化

【码妖】【宁波】空(9534557) 10:34:23

可以动态,表动态,字段动态,相互映射,无非就是建Map,也可以在库里建,也可以自己写文件,其实数据库里把代码的对象序列化最容易

【码霸】海天子(28588343) 10:34:24

你做到了,花的时间肯定是别人同样做的几倍,
以后维护更麻烦

【码神】[长春]swish(109867294) 10:34:51

@老衲 没有

【码妖】【宁波】空(9534557) 10:35:03

@老衲 我有

【码霸】海天子(28588343) 10:35:22

软件天天升级,只在试运行阶段,真正运行就很少变动了

【码妖】【宁波】空(9534557) 10:35:41

@老衲 我不是升级,我压根不知道客户建什么表,都是动态的

【码妖】[广州]老衲(424469013) 10:35:45

我的软件 3万人用 正式阶段

【码妖】[广州]老衲(424469013) 10:35:50

我几乎2天升级一次

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:35:56

像手机app  版本迭代也挺快的 

【码帝】[广州]-幽灵(493498940) 10:36:04

@老衲 我们就是天天变

【码神】[长春]swish(109867294) 10:36:09

这牵涉到一个设计问题

【码妖】【宁波】空(9534557) 10:36:13

模型做好,迭代啊

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:36:15

但是也不可能所有手机app都是一个版本

【码神】[长春]swish(109867294) 10:36:27

有些东西不一定要加字段的

【码帝】[广州]-幽灵(493498940) 10:36:36

已经上线13年了。还在天天变。

【码神】[长春]swish(109867294) 10:36:48

象我们的dictionary表,通过type来区分不同的类型

【码神】[长春]swish(109867294) 10:37:06

所有的字典项目实际上基本都一个味

【码妖】【宁波】空(9534557) 10:37:12

【码神】[长春]swish(109867294) 10:37:25

然后再通过扩展的方式,扩展出特定字典类型的特有字段

【码神】[长春]swish(109867294) 10:37:34

用Pg的话,就是继承了

【码妖】【宁波】空(9534557) 10:37:41

数据库设计也要模型啊,不能死干

【码神】[长春]swish(109867294) 10:38:02

这样子,我要新加一个字典类型,根本不需要建立一个新表

【码帝】[广州]-幽灵(493498940) 10:38:18

@[长春]swish 我们全是新加表

【码帝】[广州]-幽灵(493498940) 10:38:48

那你的字典里有多少数据?

【码神】[长春]swish(109867294) 10:38:49

除非为了逻辑上好看,我不太倾向于建一堆表

【码霸】海天子(28588343) 10:38:59

全是新加表这应该是叫在原有平台上新增加业务模板

【码神】[长春]swish(109867294) 10:39:00

十几万吧

【码妖】[广州]老衲(424469013) 10:39:05

我也全是加新表 新字段 新外键 等等 一步到位 ,因为 很难第一次设计出来的数据表 能满足以后 不停变化的 年代

【码霸】[宁波]kazarus<kazarus@qq.com> 10:39:09

我跟你们的设计还有点差距.

【码神】[长春]swish(109867294) 10:39:13

光行政区划就是快4万

【码妖】[四川]努力的干(286883826) 10:39:18

pg最适合类似对象 ORM的映射 

【码神】[长春]swish(109867294) 10:39:33

剩下的各类字典,我也没统计到底有多少条记录

【码妖】[四川]努力的干(286883826) 10:39:54

以模板方式实现重用,,已经落后了

【码神】[长春]swish(109867294) 10:40:02

话说,在Pg里有一个好处,你对外都叫dictionary,但你可以通过字段值分区

【码妖】【宁波】空(9534557) 10:40:15

我全是数据字典,字符串和数据分开,

【码神】[长春]swish(109867294) 10:40:20

然后数据量的问题也就不是问题了

【码妖】[四川]努力的干(286883826) 10:40:36

数据量的话,分表分区就解决了

【码妖】[四川]努力的干(286883826) 10:40:44

一年的数据放一个表

【码神】[东莞]青春(82611904) 10:40:51

【码神】[东莞]青春(82611904) 10:41:13

你这样后期写报表,要搞死人

【码妖】[四川]努力的干(286883826) 10:41:17

查询优化时,,使用时间约束。。

【码帝】[广州]-幽灵(493498940) 10:41:19

@[四川]努力的干 分表分区数据大了照样死锁。

【码霸】[黑龙江]梵(32055657) 10:41:36

数据库结构频繁变动, 不是个好设计,

【码神】[长春]swish(109867294) 10:41:45

【码妖】[四川]努力的干(286883826) 10:41:47

青春你不懂pg, 这不关报表啥事

【码神】[长春]swish(109867294) 10:41:50

字典表字段设计

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:42:25

分区视图能做到自动维护不

【码神】[东莞]青春(82611904) 10:42:28

一年一个表,,,你问一下阿木,,,

【码神】[东莞]青春(82611904) 10:42:38

阿木最会设计数据库了

【码妖】【宁波】空(9534557) 10:43:10

其实ORm最简单的做法就是把Map模型固定下来,修改MaP就修改映射,剩下就是Map放那里,最简单的Map就放数据库

【码神】[长春]swish(109867294) 10:43:17

id 项目的ID
name 项目的名称
type 项目的类型
parent 项目的父结点
enabled 是否启用
spellchars 拼音字头
visible 是否用户可见
ver_id 记录的版本id
ver_changetime 记录的变更时间
ver_changer 记录的变更人

【码神】[长春]swish(109867294) 10:43:33

几乎所有的字典都可以往这里装

【码妖】[四川]努力的干(286883826) 10:43:36

对的。。空兄,他们没有仔细研究过这个MAP映射。。

【码妖】【宁波】空(9534557) 10:43:37

一切都可以动态

【码妖】[四川]努力的干(286883826) 10:43:50

所以不理解 你所说的动态

【码妖】[四川]努力的干(286883826) 10:43:59

我恰好仔细研究过。。

【码妖】【宁波】空(9534557) 10:43:59

其实so easy

【码神】[长春]swish(109867294) 10:44:20

再有一个多对多的映射表,id1<->id2这样子关联就ok了

【码神】[长春]swish(109867294) 10:45:04

剩下的业务数据表单独建表

【码妖】[广州]老衲(424469013) 10:45:13

感觉@[长春]swish 你这个设计 好抽象大气的感觉,一下子 难以理解 不知道 你这个设计 有没有 相关的技术教程

【码神】[长春]swish(109867294) 10:45:29

没有啥教程呀

【码妖】[广州]老衲(424469013) 10:45:32

这叫什么设计 技术  什么思维模式

【码妖】[四川]努力的干(286883826) 10:45:39

这个举个例子。。就相当于,你去买衣服,,直接去商店买 ,买什么款式的自己选,,不用去找厂家。。

【码神】[长春]swish(109867294) 10:45:41

主要是你得将你的业务数据适当的抽象而已

【码妖】[四川]努力的干(286883826) 10:45:54

也不用管商店怎么找厂家选哪些款式。。

【码虫】[四川]老头<player1113@vip.qq.com> 10:46:08

其实这个方法用起来好不方便的,比如说要查个数据,要连主表扩展表数据一起查出来,痛苦得死人

【码妖】[四川]努力的干(286883826) 10:46:20

相当于屏蔽了后台的数据结构

【码神】[长春]swish(109867294) 10:46:26

@老衲 你看看 Starteam 的数据库设计,那个有点类似你要的感觉

【码神】[长春]swish(109867294) 10:46:35

字段名全是F1,F2,F3这样子命名的

【码妖】[四川]努力的干(286883826) 10:46:42

对于前台程序员。。是不需要关心实际的数据表结构的

【码神】[长春]swish(109867294) 10:46:54

然后有一个元数据表,记录每个字段对应的名称是啥

【码妖】【宁波】空(9534557) 10:47:18

@[长春]swish 对

【码虫】[四川]老头<player1113@vip.qq.com> 10:47:23

特别是要增删改,要疯的。我们现在用的基本上就是这个方法,加一个字段增删改,想死的感觉都有了

【码妖】[四川]努力的干(286883826) 10:47:23

你一个价格字段。。你前台程序员可以用price代表。。我后端数据库可以用123这个字段来存储

【码帝】[北京]猫猫,也叫老猫,请大家没事别圈我。(1765535979) 10:47:31

人家老衲说是,人家做到了。想做的更好。
你们却说人家这个不好?

【码妖】[四川]努力的干(286883826) 10:47:45

都可以。。前端根本不需要关心后端实际的数据表结构

【码神】[东莞]青春(82611904) 10:47:49

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:47:50

@[四川]努力的干 你思路和RO DA是一样的

【码妖】[四川]努力的干(286883826) 10:48:20

就是这个思路,

【码妖】[四川]努力的干(286883826) 10:48:26

空兄说的也是这个

【码神】[东莞]青春(82611904) 10:48:33

@[四川]努力的干 又要搞DA 了?

【码妖】[四川]努力的干(286883826) 10:48:35

包括群主也是这个思路

【码神】[长春]swish(109867294) 10:48:39

这个东西就是那么回事吧,思路一人一个样,同一个思路交给不同的人实现,也会是不同的结果

【码神】[长春]swish(109867294) 10:49:03

用户扩展的设计我才考虑用 F1...这种

【码妖】[广州]老衲(424469013) 10:49:07

@[长春]swish 你这个思路 我感觉 我难以理解,我应该 如何学习下 你这个思路 ,比如 百度 搜什么 是什么思维

【码神】[长春]swish(109867294) 10:49:47

实际上就是在数据内容的基础上,进行公共的一种抽象,具体叫啥,我从来没想过

【码神】[长春]swish(109867294) 10:49:57

类似面向对象的设计

【码妖】[四川]努力的干(286883826) 10:50:06

嗯,DA就是这样做的

【码妖】[四川]努力的干(286883826) 10:50:15

老衲去研究一下DA就明白了

【码妖】[四川]努力的干(286883826) 10:50:34

DA不光抽象出来。。还给配上接口方法。。

【码妖】[四川]努力的干(286883826) 10:51:56

其实跟ER数据库设计建模工具类似,,逻辑模型和物理模型之间也有一个映射

【码妖】[四川]努力的干(286883826) 10:52:34

而逻辑模型就是一个抽象的,,不具体到某个数据库的模型

【码妖】【宁波】空(9534557) 10:53:00

其实就是多了一个名词,Orm,其实就是一个P

【码妖】[四川]努力的干(286883826) 10:53:08

而物理模型则具体对应到每一个具体的数据库

【码妖】【宁波】空(9534557) 10:53:43

编程就是N多的各种词语,让你觉的云里雾里

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:53:54

ORM还是有它的好处的,至少是强类型,写代码会方便很多的

【码帝】[杭州]安尘<anchen8@vip.qq.com> 10:54:11

【码妖】【宁波】空(9534557) 10:54:13

映射,动态表,20年前就干了

【码妖】[四川]努力的干(286883826) 10:54:26

我们今天说的,,不一定要映射成对象。。

【码妖】[四川]努力的干(286883826) 10:54:38

就像DA, 就不是映射成对象

【码妖】【宁波】空(9534557) 10:54:44

D5,就有了,

【码妖】[四川]努力的干(286883826) 10:54:45

他映射成了Dataset

【码妖】[四川]努力的干(286883826) 10:54:52

数据集。。

【码妖】[四川]努力的干(286883826) 10:55:14

而这个数据集还可以AS interface.  调用接口方法

【码妖】【宁波】空(9534557) 10:55:19

从Pd有的那一天就可以画表了,就有模型了

【码帝】广州-咏南(254072148) 10:55:35

转遍了宇宙,最后回到了RAD星球

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:55:37

DA可以映射成对象,也可以映射成DataSet的

【码妖】[四川]努力的干(286883826) 10:55:49

不映射成对象的目的,是为了提高性能效率

【码妖】[四川]努力的干(286883826) 10:56:07

有些时候不需要创建一堆对象来占用内存和网络带宽

【码妖】【宁波】空(9534557) 10:56:23

没有最好的语言,最好的模型,只有最好的玩家

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:56:24

DataSet使用起来没有ORM对象方便

【码妖】[四川]努力的干(286883826) 10:57:08

DAModel中我只看到了能映射成DS。。

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:57:13

ORM直接传个对象就OK, 而DataSet中需要查找或过滤才能找到自己要的记录

【码妖】[四川]努力的干(286883826) 10:57:21

没看到映射对象。。

【码妖】[四川]努力的干(286883826) 10:57:57

MarkWu能否截个图看看

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 10:58:19

DA中有个生成对象的功能

【码妖】[四川]努力的干(286883826) 10:58:29

那就是你胡说。。

【码妖】[四川]努力的干(286883826) 10:58:38

哪个框架不能生成对象?

【码妖】【宁波】空(9534557) 10:58:40

映射本身就是你应用模型,跟库没关系,最多你可以放库里

【码妖】【宁波】空(9534557) 10:59:07

dataset道理一样

【码妖】[四川]努力的干(286883826) 10:59:17

我们说的是数据库表映射。。

【码妖】[四川]努力的干(286883826) 10:59:25

必然谈及库

【码妖】[四川]努力的干(286883826) 10:59:34

否则都是瞎吹一通

【码妖】【宁波】空(9534557) 11:00:43

概念不重要,重要的是解决问题

【码妖】[广州]老衲(424469013) 11:01:30

在数据内容的基础上,进行公共的一种抽象,所有表的字段、类型、长度 一个表来抽象,所有表的索引 用一个索引表来抽象,所有表的主键、外键等 各用一个表来抽象,实现数据库表的关系设计,与数据库内容 分离

【码妖】[四川]努力的干(286883826) 11:01:37

对啊。。你泛泛而谈。。老衲是看不懂的

【码神】[荆州]不得闲(75492895) 11:02:51

RAD害了多少人

【码神】[荆州]不得闲(75492895) 11:03:06

导致多数人认为Delphi就是用来拖拖控件,写数据库的

【码帝】【东莞】-天明(464573018) 11:03:19

【码妖】[四川]努力的干(286883826) 11:03:21

嗯,闲大说的对

【码妖】【宁波】空(9534557) 11:03:22

严重同感

【码霸】海天子(28588343) 11:03:36

这话说重了吧,难道拖拖控件写数据库不好吗

【码帝】【东莞】-天明(464573018) 11:03:46

都是从拖控件入门的

【码帝】广州-咏南(254072148) 11:03:49

闲大被害了吗

【码妖】[广州]老衲(424469013) 11:03:56

@[长春]swish 实现数据库表的关系设计,与数据内容 分离,数据设计是统一的,数据内容可以分多个表来存储? 是这个思维?

【码妖】[四川]努力的干(286883826) 11:03:56

而且很多人还以为delphi只能写数据库应用

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 11:04:09

RAD是个短平快的技术,确实害人的,搞得Delphier技术提高很难

【码神】[荆州]不得闲(75492895) 11:04:35

只是觉得罢了

【码神】[长春]swish(109867294) 11:04:41

@老衲 我的想法是:逻辑接口统一,存贮按需分离

【码帝】广州-咏南(254072148) 11:04:44

以为它们都是SB?

【码帝】【东莞】-天明(464573018) 11:04:48

现在VS也是拖控件啊

【码神】[荆州]不得闲(75492895) 11:04:53

RAD使得很多人停留在浮躁层面

【码帝】广州-咏南(254072148) 11:04:59

以为它们只会拖控件

【码霸】海天子(28588343) 11:05:05

这说明你们写程序不是为了让程序写得更好,而以为了提高自己的技术的

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 11:05:13

.net结合了delphi的RAD和Java的设计思想

【码霸】海天子(28588343) 11:05:18

你们技术狂

【码神】[荆州]不得闲(75492895) 11:05:46

其实最近还好一点

【码帝】广州-咏南(254072148) 11:06:01

多抽象几层,让它妈都认不出来

【码神】[荆州]不得闲(75492895) 11:06:12

我当时刚开始学Delphi的时候,别人就说的是这货只能搞数据库

【码神】[荆州]不得闲(75492895) 11:06:18

【码霸】海天子(28588343) 11:06:45

写程序不是为了商业利益,而是为了技术的提高,我也是服了你们

【码神】[荆州]不得闲(75492895) 11:06:54

Java,我总觉得那货,搞个啥都要写个类,包装

【码妖】【宁波】空(9534557) 11:07:40

拖拖拉拉太容易,让人不会去想问题

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 11:08:17

Delphi在面向对象设计这块相对Java落后了很多

【码妖】[广州]老衲(424469013) 11:08:27

@[长春]swish 明白了 理解你的这个思路了。又学了一招 ,我思考 思考 看能否结合上我的业务 

【码妖】【宁波】空(9534557) 11:08:32

@[深圳]MarkWu 谁说的

【码妖】【宁波】空(9534557) 11:09:12

D也可以写class比Java还早

【码妖】【宁波】空(9534557) 11:09:35

只是D程序员没有这么玩而已

【码帝】广州-咏南(254072148) 11:09:41

以JAVA的眼光看,DELPHI什么都不是

【码妖】【宁波】空(9534557) 11:09:48

过去拖拖拉拉可以解决了

【码神】[荆州]不得闲(75492895) 11:10:14

Java的设计思想很多来源于Delphi

【码帝】广州-咏南(254072148) 11:10:14

以OO的眼光看,过程啥都不是

【码霸】[深圳]MarkWu<wyh110536@21cn.com> 11:10:14

我说的是 “面向对象设计”,不是面向对象

【码神】[荆州]不得闲(75492895) 11:10:17

你们不知道么

【码霸】海天子(28588343) 11:10:17

拖拖拉拉可以解决,非要一个一个字母写才行

【码神】[荆州]不得闲(75492895) 11:10:20

【码妖】【宁波】空(9534557) 11:10:35

@[深圳]MarkWu 一样的

【码神】[荆州]不得闲(75492895) 11:10:36

以前的Java很多解决方案是Borland提供的

【码神】[荆州]不得闲(75492895) 11:10:38

好么

【码妖】[四川]努力的干(286883826) 11:11:07

【码神】[长春]swish(109867294) 11:11:10

以我的眼光,过去的我啥也不是,但并不代表现在的我是从石头缝里蹦出来的

【码妖】[四川]努力的干(286883826) 11:11:17

老衲,你先看懂这张图。。

【码帝】[番禺]代码狂人(2716715491) 11:11:26

【码妖】【宁波】空(9534557) 11:11:27

只是最优秀的内裤把程序员养懒了

【码帝】广州-咏南(254072148) 11:11:27

从门缝里看闲闲,它是条条的

【码妖】[四川]努力的干(286883826) 11:11:29

就能学到如何映射了

【码神】[荆州]不得闲(75492895) 11:11:37

至少Delphi的组建思想是比较好的

【码神】[长春]swish(109867294) 11:11:44

相当好

【码神】[荆州]不得闲(75492895) 11:11:48

南郭,又来欺负我了

【码神】[荆州]不得闲(75492895) 11:12:10

而且也是提出来比较早的

【码神】[荆州]不得闲(75492895) 11:12:25

Java以前的很多技术方案来自于Delphi

【码妖】[广州]老衲(424469013) 11:12:40

@[四川]努力的干 被你的这张图 震撼了

【码神】[荆州]不得闲(75492895) 11:12:52

现在的Web也慢慢开始提倡WebComponent了

【码帝】[上海]易度变和(78211366) 11:13:01

就是DA的工具

【码帝】[上海]易度变和(78211366) 11:13:06

那个图

【码帝】广州-咏南(254072148) 11:13:30

那些框架,那些封装,抽象,闲闲你最后看到的是什么东西?

【码妖】[四川]努力的干(286883826) 11:13:39

是的,易度。。DA的思想都在那张图里

【码神】[荆州]不得闲(75492895) 11:13:46

啥框架,啥封装?

【码妖】[广州]老衲(424469013) 11:13:49

@[四川]努力的干 有没有 什么 官方网址 发来 我看看 多谢

【码神】[荆州]不得闲(75492895) 11:13:58

南郭,别整台高深了

【码神】[荆州]不得闲(75492895) 11:14:14

有时候跳狠了,小弟接不上

【码神】[荆州]不得闲(75492895) 11:14:17

【码神】[荆州]不得闲(75492895) 11:14:40

南郭在湖南哪里

【码帝】广州-咏南(254072148) 11:15:00

俺是湖北人

【码神】[荆州]不得闲(75492895) 11:15:18

尼玛,你又跑到广州了

【码帝】广州-咏南(254072148) 11:15:29

这人不装B哪镇得住台面

【码妖】[四川]努力的干(286883826) 11:15:31

@老衲 http://www.dataabstract.com/da/default.aspx

【码妖】[四川]努力的干(286883826) 11:16:14

南郭先生。。这个B装的好。。

2016-06-21

【码帝】广州-咏南(254072148) 11:16:29

问它们些回答不了的问题,让它们回不过神来

【码神】[荆州]不得闲(75492895) 11:17:13

别装了,装多了,JJ没了

【码帝】【东莞】-天明(464573018) 11:17:33

拖控件也是面向对象编程

【码帝】广州-咏南(254072148) 11:17:37

有9条JJ

【码帝】【东莞】-天明(464573018) 11:18:51

别人封装好的控件,你们用的时候会结合自己的业务逻辑再组合封装一次吗?

【码神】[东莞]青春(82611904) 11:19:00

【码神】[东莞]青春(82611904) 11:19:25

直接拖到界面

【码神】[东莞]青春(82611904) 11:19:32

【码帝】【东莞】-天明(464573018) 11:19:33

。。。

【码妖】[四川]努力的干(286883826) 11:19:37

就如同建房子。。

【码妖】[四川]努力的干(286883826) 11:19:44

别人封装好的砖头

【码妖】[四川]努力的干(286883826) 11:19:53

你拿来再做封装。。

【码妖】[四川]努力的干(286883826) 11:20:02

就成了墙壁

【码妖】[四川]努力的干(286883826) 11:20:06

柱头

【码妖】[四川]努力的干(286883826) 11:20:10

等等

时间: 2024-10-06 17:15:19

数据库设计又一个新思路的相关文章

数据库设计二《函数依赖和三范式》

函数依赖: 定义:R(U)是在属性集U上的关系模式,X,Y是U的子集.若对于R(U)的任意一个可能关系r,r中的不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y,或者Y函数依赖X,记作X--->Y. 单纯的概念有点难以理解,通过例子1:属性集U,关系模式R(U),子集X,Y,可能关系r1. 可以理解为X能唯一确定Y,则X--->Y.常用为主键------>其他属性 函数依赖和三范式 函数依赖的分类:完全依赖,部分依赖,传递依赖. 完全依赖和一范式 完全依赖:X

数据库设计——三范式概念+实战

在利用三范式设计数据库的时候,以前总以为是先画完ER图,然后导出关系模式,最后用三范式去检验数据库设计的是否合理,but not!我们在一开始画ER图的时候,就应当和三范式联系起来,将错误消灭在源头.为了能最早的检验出错误,我们就要对ER图转换成关系模式的算法和三范式是如何消除冗余,避免冲突有深刻的了解,才能知道如何最早发现错误. 本文主要以机房收费系统数据库设计中的一些东西为例,结合三范式概念,简述下三范式. 一,1NF 定义: 如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是

写给开发者看的关系型数据库设计

目录 一 Codd的RDBMS12法则——RDBMS的起源 二 关系型数据库设计阶段 三 设计原则 四 命名规则 数据库设计,一个软件项目成功的基石.很多从业人员都认为,数据库设计其实不那么重要.现实中的情景也相当雷同,开发人员的数量是数据库设计人员的数倍.多数人使用数据库中的一部分,所以也会把数据库设计想的如此简单.其实不然,数据库设计也是门学问. 从笔者的经历看来,笔者更赞成在项目早期由开发者进行数据库设计(后期调优需要DBA).根据笔者的项目经验,一个精通OOP和ORM的开发者,设计的数据

关系型数据库设计

转自:http://www.cnblogs.com/MeteorSeed/archive/2013/03/27/2880054.html ------------------------------------------------------------------------------------- 目录 一 Codd的RDBMS12法则——RDBMS的起源 二 关系型数据库设计阶段 三 设计原则 四 命名规则 数据库设计,一个软件项目成功的基石.很多从业人员都认为,数据库设计其实不那么

数据库设计那些事儿

数据库设计原则,或者说最终目的: 有效的存储 高效的访问 最近在慕课网上学习了一部分数据库方面的理论知识(最近学习喜欢从视频入手...好像也就到视频和写博客了),现总结如下: 总体结构:需求分析-->逻辑设计-->物理设计-->维护优化: 实际上,讲者也认为,数据库设计就是一个需求,而整个设计就包含上面的四个步骤: 总述 直接上图 下面是文字版 需求分析:分析整个数据库要存哪些数据,这些数据本身有哪些特点,数据之间存在什么关系(明确数据,明确数据特点,明确数据关系): 逻辑设计:针对上一

性能优化系列六:数据库设计

一.为优化而设计 1. 数据库设计 数据库设计,一个软件项目成功的基石.数据库设计也是门学问.在项目早期由开发者进行数据库设计(后期调优需要DBA).一个精通OOP和ORM的开发者,设计的数据库往往更为合理,更能适应需求的变化.因为数据库的规范化,与OO的部分思想雷同(如内聚).而DBA,设计的数据库的优势是能将DBMS的能力发挥到极致,能够使用SQL和DBMS实现很多程序实现的逻辑,与开发者相比,DBA优化过的数据库更为高效和稳定. 2. 数据库设计与程序设计的差异 有如下的一个系统: 面向对

手势识别项目小组——数据库设计心得

因为我们的项目是算法类,所以项目本身的需求不太明确.设计数据库的过程其实本身也是在进一步明确需求的过程. 这是我们画出的用例图: 以下是我们小组成员的数据库设计心得: JJ: 通过本次数据库设计的过程,我经历了很多也学会了很多. 首先因为课程组的要求是设计出至少15张表,而我们想要达到15张表是很困难的.我们的设计想法是先根据我们之前设计的原型先设计出一些表,根据登陆.注册.历史记录等设计了几张表.但是这些表也基本是基于用户而设计的,后来我们也寻求了指导老师的帮助,指导老师帮忙想了一个损失函数表

一个缺陷管理系统数据库设计和界面设计分析

在Winform方面,基于业务的不同,我们可以利用工具的效率,快速做很多不同的业务系统,前期做了一个缺陷管理系统,想把单位的测试业务规范下,也好统计和分析每个版本的缺陷信息,本篇整理这些数据库设计和界面设计的相关内容,做一个介绍,希望给大家一个对比参照的案例进行学习了解. 1.缺陷管理系统的业务分析 在很多缺陷管理系统里面,我们往往需要管理的就是缺陷信息的记录,以及缺陷记录的开闭过程,从而实现了测试人员->开发人员->测试人员的整个闭环过程. 一般情况下,缺陷管理系统可以部署在局域网内,或者公

一个项目需要考虑的问题:项目路径,数据库设计和权限,安全策略,日志类实现,页面基本结构

整个项目的流程 1.构建整个项目的框架结构[基本常量的定义] [实现一个框架需要权衡和良好的包含体系] 2.数据库设计和权限控制[对访问数据库的用户权限控制:默认新创建的用户对库内的数据并没有操作权限:Grant语句进行全新啊管理] 在项目建立之初,对数据库表结构进行设计是项目的关键. 考虑到各个业务层面上,设计各自的表结构. 注意数据库的三范式结构: 数据不可分割:第一范式[关联型数据库][针对每一列字段] 每一行数据的独立性:第二范式[针对每一行数据] 数据表之间的数据不要重复冗余:第三范式