d*******n 发帖数: 109 | 1 去客户那里工作,面对一个超复杂的ERP, 1,500+table, 2,000 Stored Procedures.
需要我在尽快彻底理解数据库,我和客户说目前有几个方法,一个是从现有的PC上的
ERP软件附带的order form, invoice form等界面,将数据输入ERP,然后我好好研究数
据的变化。还有一个方法是这个客户那里有当时买软件时附带的在Access里的上百个
report, 都是连接到ERP数据库上的,通过研究这些reports,也能帮助我迅速上手。
客户本来觉得这任务不难,后来可能觉得我的表现没有达到他的要求,所以对我不够信
任,所以现在我和客户的双方理解,沟通有了小小的不通畅。
请问从技术上说我该如何更好更快的理解这个超难得数据库,有什么好的方法,途径来
了解这个ERP的数据库呢?
从和客户的沟通上,有什么建议吗?
谢谢指点。 |
u******u 发帖数: 595 | 2 Please define clearly what you meant "需要我在尽快彻底理解数据库."
-- What kind database?
-- What do they need you to understand?
-- What is your job duty? |
n****f 发帖数: 905 | 3 画一张大 ERD 并搞清楚各个表之间的关系。
比如像这样的图
【在 d*******n 的大作中提到】 : 去客户那里工作,面对一个超复杂的ERP, 1,500+table, 2,000 Stored Procedures. : 需要我在尽快彻底理解数据库,我和客户说目前有几个方法,一个是从现有的PC上的 : ERP软件附带的order form, invoice form等界面,将数据输入ERP,然后我好好研究数 : 据的变化。还有一个方法是这个客户那里有当时买软件时附带的在Access里的上百个 : report, 都是连接到ERP数据库上的,通过研究这些reports,也能帮助我迅速上手。 : 客户本来觉得这任务不难,后来可能觉得我的表现没有达到他的要求,所以对我不够信 : 任,所以现在我和客户的双方理解,沟通有了小小的不通畅。 : 请问从技术上说我该如何更好更快的理解这个超难得数据库,有什么好的方法,途径来 : 了解这个ERP的数据库呢? : 从和客户的沟通上,有什么建议吗?
|
s**********o 发帖数: 14359 | 4 不难吗,如果当初数据库里就没有RELATIONSHIP,你要
搞清楚TABLE之间的关系,和数据是怎么使用的,这个
是最复杂的吧,人把公司的数据交给你,你给我搞清楚
我怎么用这些数据,你这个外人估计要扒层皮才能搞清楚,
等你搞清楚就可以自己开公司替代他们了 |
u******u 发帖数: 595 | 5 For Oracle or SQL server, it is not hard to get a ERD for a given database. |
n****f 发帖数: 905 | 6 很多公司的数据库, 建立的不规范。
在楼主的例子里面, 我可以在 5 分钟建成 ERD, 呵呵, 我有自己的工具, 但是,
要搞清楚各个表之间的逻辑关系, 就要具体问题具体分析了。
这要和客户很好地沟通才行。
【在 u******u 的大作中提到】 : For Oracle or SQL server, it is not hard to get a ERD for a given database.
|
d*******n 发帖数: 109 | 7 it is transportation industry, 是Sql Server relational database, 但不是非常
normalized database.数据库的table >1,500, SP>2,500,还有300多个trigger, 很多
SP和Trigger都是非常长,PK和FK的关系很少,所以Table之间的关系主要靠一些关键的
Column来联系,而不是PK-FK关系。总之,是一个比较成熟的ERP DB.
我的任务是在熟悉数据库的基础上,
1,另外有人在Android和IPhone上建Portal,我要知道Portal的各个地方连接到数据库
里的具体的Table和Column。
2,我要能用SSRS和此数据库,建立各个Reports,
目前的一些资源是一个数据库,里面只有不多的Sample Data。几个在PC上的Forms,产
品附带的,可以输入数据入数据库,包括Order Form, Invoice Form等,还有就是在
Access上有很多已经建好的Reports, 数据来源是同一个Sql Server数据库,但是据说
Source Code看不到(开发商给屏蔽了,不过这个要进一步确认)。还有比较粗略的
Documents是开发商留下的,看后总觉得不够。
问题是如何在短时间内能够完成上述任务,这是一个让人觉得有些恐怖的数据库,有什
么好的方法吗? ERD 可能要分不同的板块来一块块解剖,如何能尽快知道Table之间的
相关和通过什么column相互关联?还有就是感觉光是读Documents不动手根本没用的,
如何才能让自己在操作中熟悉数据库呢?
谢谢老土老师,谢谢各位热心回复。 |
d*******n 发帖数: 109 | 8 另外这样的工作大概要多长时间才能完成,3个月,6个月还是9个月?谢谢。 |
s**********o 发帖数: 14359 | 9 人RELATIONSHIP建好了的话,还找你做ERP啊,
VISIO或者ERWIN一下自动生成不就得了,就是因为当初
没设计好,膏药糊了无数贴,才来请CONTRACTOR
给理清楚的吧,PK,TRIGGER,SP啥都不缺,你这个要
从头做DATA MODEL,搞不清楚DATA MODEL+BUSINESS MODEL
就是个没头的苍蝇,不知道人的数据用了多少年,用了
多少版本的软件,建议是重新设计DATA MODEL做DATA CONVERSION得了,
别人的数据有多烂,花一年也可能搞不清楚,不如另起炉灶,
可惜了你的CONTRACT |
d*******n 发帖数: 109 | 10 去客户那里工作,面对一个超复杂的ERP, 1,500+table, 2,000 Stored Procedures.
需要我在尽快彻底理解数据库,我和客户说目前有几个方法,一个是从现有的PC上的
ERP软件附带的order form, invoice form等界面,将数据输入ERP,然后我好好研究数
据的变化。还有一个方法是这个客户那里有当时买软件时附带的在Access里的上百个
report, 都是连接到ERP数据库上的,通过研究这些reports,也能帮助我迅速上手。
客户本来觉得这任务不难,后来可能觉得我的表现没有达到他的要求,所以对我不够信
任,所以现在我和客户的双方理解,沟通有了小小的不通畅。
请问从技术上说我该如何更好更快的理解这个超难得数据库,有什么好的方法,途径来
了解这个ERP的数据库呢?
从和客户的沟通上,有什么建议吗?
谢谢指点。 |
|
|
u******u 发帖数: 595 | 11 Please define clearly what you meant "需要我在尽快彻底理解数据库."
-- What kind database?
-- What do they need you to understand?
-- What is your job duty? |
n****f 发帖数: 905 | 12 画一张大 ERD 并搞清楚各个表之间的关系。
比如像这样的图
【在 d*******n 的大作中提到】 : 去客户那里工作,面对一个超复杂的ERP, 1,500+table, 2,000 Stored Procedures. : 需要我在尽快彻底理解数据库,我和客户说目前有几个方法,一个是从现有的PC上的 : ERP软件附带的order form, invoice form等界面,将数据输入ERP,然后我好好研究数 : 据的变化。还有一个方法是这个客户那里有当时买软件时附带的在Access里的上百个 : report, 都是连接到ERP数据库上的,通过研究这些reports,也能帮助我迅速上手。 : 客户本来觉得这任务不难,后来可能觉得我的表现没有达到他的要求,所以对我不够信 : 任,所以现在我和客户的双方理解,沟通有了小小的不通畅。 : 请问从技术上说我该如何更好更快的理解这个超难得数据库,有什么好的方法,途径来 : 了解这个ERP的数据库呢? : 从和客户的沟通上,有什么建议吗?
|
s**********o 发帖数: 14359 | 13 不难吗,如果当初数据库里就没有RELATIONSHIP,你要
搞清楚TABLE之间的关系,和数据是怎么使用的,这个
是最复杂的吧,人把公司的数据交给你,你给我搞清楚
我怎么用这些数据,你这个外人估计要扒层皮才能搞清楚,
等你搞清楚就可以自己开公司替代他们了 |
u******u 发帖数: 595 | 14 For Oracle or SQL server, it is not hard to get a ERD for a given database. |
n****f 发帖数: 905 | 15 很多公司的数据库, 建立的不规范。
在楼主的例子里面, 我可以在 5 分钟建成 ERD, 呵呵, 我有自己的工具, 但是,
要搞清楚各个表之间的逻辑关系, 就要具体问题具体分析了。
这要和客户很好地沟通才行。
【在 u******u 的大作中提到】 : For Oracle or SQL server, it is not hard to get a ERD for a given database.
|
d*******n 发帖数: 109 | 16 it is transportation industry, 是Sql Server relational database, 但不是非常
normalized database.数据库的table >1,500, SP>2,500,还有300多个trigger, 很多
SP和Trigger都是非常长,PK和FK的关系很少,所以Table之间的关系主要靠一些关键的
Column来联系,而不是PK-FK关系。总之,是一个比较成熟的ERP DB.
我的任务是在熟悉数据库的基础上,
1,另外有人在Android和IPhone上建Portal,我要知道Portal的各个地方连接到数据库
里的具体的Table和Column。
2,我要能用SSRS和此数据库,建立各个Reports,
目前的一些资源是一个数据库,里面只有不多的Sample Data。几个在PC上的Forms,产
品附带的,可以输入数据入数据库,包括Order Form, Invoice Form等,还有就是在
Access上有很多已经建好的Reports, 数据来源是同一个Sql Server数据库,但是据说
Source Code看不到(开发商给屏蔽了,不过这个要进一步确认)。还有比较粗略的
Documents是开发商留下的,看后总觉得不够。
问题是如何在短时间内能够完成上述任务,这是一个让人觉得有些恐怖的数据库,有什
么好的方法吗? ERD 可能要分不同的板块来一块块解剖,如何能尽快知道Table之间的
相关和通过什么column相互关联?还有就是感觉光是读Documents不动手根本没用的,
如何才能让自己在操作中熟悉数据库呢?
谢谢老土老师,谢谢各位热心回复。 |
d*******n 发帖数: 109 | 17 另外这样的工作大概要多长时间才能完成,3个月,6个月还是9个月?谢谢。 |
s**********o 发帖数: 14359 | 18 人RELATIONSHIP建好了的话,还找你做ERP啊,
VISIO或者ERWIN一下自动生成不就得了,就是因为当初
没设计好,膏药糊了无数贴,才来请CONTRACTOR
给理清楚的吧,FK,TRIGGER,SP啥都不缺,你这个要
从头做DATA MODEL,搞不清楚DATA MODEL+BUSINESS MODEL
就是个没头的苍蝇,不知道人的数据用了多少年,用了
多少版本的软件,建议是重新设计DATA MODEL做DATA CONVERSION得了,
别人的数据有多烂,花一年也可能搞不清楚,不如另起炉灶,
可惜了你的CONTRACT |
d*******n 发帖数: 109 | 19
你前面说的说到我心坎里去了,就是这种感觉,后面说的另起炉灶,就已经超出我的讨
论范围了。不过,也不能说就可惜了这个contract了,做了这个项目后,对ralational
database, 对stored procedure,trigger等一律就战略战术上藐视了。
【在 s**********o 的大作中提到】 : 人RELATIONSHIP建好了的话,还找你做ERP啊, : VISIO或者ERWIN一下自动生成不就得了,就是因为当初 : 没设计好,膏药糊了无数贴,才来请CONTRACTOR : 给理清楚的吧,FK,TRIGGER,SP啥都不缺,你这个要 : 从头做DATA MODEL,搞不清楚DATA MODEL+BUSINESS MODEL : 就是个没头的苍蝇,不知道人的数据用了多少年,用了 : 多少版本的软件,建议是重新设计DATA MODEL做DATA CONVERSION得了, : 别人的数据有多烂,花一年也可能搞不清楚,不如另起炉灶, : 可惜了你的CONTRACT
|
s**********o 发帖数: 14359 | 20 你别瞧不起人的STORED PROC,每一个复杂的SP都要
对数据的商业用途搞得很清楚才能写好,BUSINESS LOGIC
都躲在里面了
ralational
【在 d*******n 的大作中提到】 : : 你前面说的说到我心坎里去了,就是这种感觉,后面说的另起炉灶,就已经超出我的讨 : 论范围了。不过,也不能说就可惜了这个contract了,做了这个项目后,对ralational : database, 对stored procedure,trigger等一律就战略战术上藐视了。
|
|
|
d*******n 发帖数: 109 | 21 谢谢指点,还有一个问题是对于2,600个SP,如何知道什么是重点,如何入手,象保定
解牛一样把它们的条理分清楚呢?
【在 s**********o 的大作中提到】 : 你别瞧不起人的STORED PROC,每一个复杂的SP都要 : 对数据的商业用途搞得很清楚才能写好,BUSINESS LOGIC : 都躲在里面了 : : ralational
|
s**********o 发帖数: 14359 | 22 从最常用的SP开始研究,SQL SERVER的话RUN个DMV
SELECT
DatabaseName = DB_NAME(st.dbid)
,SchemaName = OBJECT_SCHEMA_NAME(st.objectid,dbid)
,StoredProcedure = OBJECT_NAME(st.objectid,dbid)
,ExecutionCount = MAX(cp.usecounts)
FROM sys.dm_exec_cached_plans cp
CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) st
WHERE DB_NAME(st.dbid) IS NOT NULL
AND cp.objtype = 'proc'
GROUP BY
cp.plan_handle
,DB_NAME(st.dbid)
,OBJECT_SCHEMA_NAME(objectid,st.dbid)
,OBJECT_NAME(objectid,st.dbid)
ORDER BY MAX(cp.usecounts) DESC
或者 PROFILER接上看看哪些是常用的STORED PROC
【在 d*******n 的大作中提到】 : 谢谢指点,还有一个问题是对于2,600个SP,如何知道什么是重点,如何入手,象保定 : 解牛一样把它们的条理分清楚呢?
|
d*******n 发帖数: 109 | 23 谢谢,玉米小饼,你的每一个回复都给我或多或少的启示,Gracis。 |
d*******n 发帖数: 109 | 24 有其他人在Android和Apple上建Portal, 然后我要把Portal上的输入的数据知道一一
对应到这数据库里去,我怎么样才能知道Portal上的该输入到什么地方去呢? 是我自
己先不停的试,看看,输入的一个数据究竟是如何走的,同时研究trigger,从
orderheader, invoiceheader之类的看起。看看我是不是能一个个follow (很多
trigger, SP都巨复杂的),还可以用change track, 我们用的是2008 standard
edition,所以不能用CDC。还有什么好办法吗? 总觉得心里没底,没有一个road map,
谢谢。 |
e*******7 发帖数: 2169 | 25 1500个表的也算超复杂ERP吗:)SAP打点 EHP 轻松过20万个表算啥
我感觉你这个approach有点over kill。你去客户那里不是考试,也不是搞科研,使解
决问题去了。不如讨论清楚你的deliverable是啥,要解决什么问题。我刚毕业那会总
以搞科研态度去工作,很多时候没有用,照眼点在big picture,细节就着重钻研和解
决问题相关的。 |
s**********o 发帖数: 14359 | 26 客户只是要你尽快理解DATA MODEL吧,并没有说要你解决什么问题,
从ORDER FORM INVOICE入手是个办法,让你来DESIGN你怎么DESIGN,然后
去后台看看他们怎么DESIGN的,比较一下,其实对自己也是个提高,
这是一个分析的方法。然后还要看,TABLE有多大,多少数据,
哪些是经常INSERT的,哪些是经常只读或者SUPPORT的。其实商业
的东西无非就那么几种,ORDER系统,CRM,HR,股票,银行,HEALTHCARE
把基本的关系理清楚就可以 |
d*******n 发帖数: 109 | |