
正文
php与数据字典 php与数据库
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
菜鸟求助PHP字符替换的问题
运行“三角”旁边的下拉列表里的debug和release有什么区别呀?
请教问题:浏览器中嵌入的其他的程序是使用的什么技术?
unix下写C程序要装些什么????
ORA-00257错误是什么?怎么解决?
win2000不能启动,启动画面完成后就蓝屏..请问这是什么原因??
大家帮我看看是什么错误?高分回答问
有什么命令能在win2k下找出win2k的注册码?
SQL初学者的问题,在数据库里的distribution,master,model,msdb,tempdb分别是什么?
深入学习win2k,什么书比较好??
装上了LINUX,下一步学什么?
win2000不能启动,启动画面完成后就蓝屏,请问这是什么原因
同时向两个数据表送数据的SQL程序,其中两个表中有相同的数据名,一个FORM向两张表里送数据,就是ASP处理程序里用的,有什么好办法吗?
(i)中的children(0)代表什么意思
solaris中SIGINT信号由什么触发?
OpneGL中绘制圆弧、圆什么的需要用线段分段逼近吗?
帮忙看看这段程序有什么问题!
想用for循环将记录浏览一遍,用什么方法好?
请问table1.children(0).children(i)中的children(0)代表什么意思
我想租一个php空间的网站,但不支持mysql ,有什么办法让这个空间支技数据库呢,
大家快帮我看看这个是什么错误,该怎么解决?:)
SQL,Oracle,Sybase,MySQL等各有什么特色,对于想搞一个
请问vsflexgrid主要用来实现什么功能?请了解的概要介绍一下,谢谢!
请问从cell4.1升级到cell4.2的话,接口有什么改变吗?
深入学习win2k,什么书比较好??
欢迎讨论:JSP+SQL Server+Apache建立一个Web服务器有什么值得注意的问题?(之二)
在线解答:TCP服务端什么知道已连接的客户端的ip和端口?
M2 300的cpu是什么接口?同类的cpu最高频率是多少啊?
广东水平证书什么时候发呀,有没有消息?????
OpneGL中绘制圆弧、圆什么的需要用线段分段逼近吗?
请问各位大虾:组件和中间件的区别是什么?
有没有人知道ConsoleReader这个包在什么地方可以找到!本人非常需要.
看看下面的程序是什么原因造成错误的
我第一次装linux,需要注意什么呢?
谁知道目前流行的3d游戏用的什么引擎?
VB6中如何实现 鼠标双击标题栏什么也不作?谢谢!
FAQ是什么意思?
SYBASE里面dmp是什么文件?在SYBASE11下面如何恢复备份文件?
有谁知道 长江PR2打印机仿真Epson,用什么驱动程序
投票程序怎么判断提交了什么?
请问需求分析里应该包括什么内容呀?
初学问题:在c 下编译时,Unable to open input file 'COS.OBJ'是什么原因造成的
程序员的出路是什么,是考研吗,小弟正在徘徊,请各位高手指点?
请教高手,pdg类型的文件用什么软件打开?
鼠标移动到SDI的客户区的左边框对应的是什么事件?(在线等待)
webserice 是什么 ?
有什么办法可以看到server上的jsp文件的内容
有无人做过账务系统啊?要注意些什么?100大赠送!
在asp中执行多句的sql语句,不执行,请问是什么原因?
硬盘的DMA方式是什么意思呀?
优化大师中的禁用注册表是通过什么原理实现的?
请问用什么控件能生成K线图?
#integrity和#fixmog功能是什么
急:windows CE 是什么意思?
请问什么编译器支持 Boost库的 thread ???
新出的vb.net功能上有什么比VB6增强的地方?它和DELPHI相比较又如何呢?
本人所在小公司想做一个网站.请问一下用什么做服务器?用java
这是什么错,高手请看!
新出的vb.net功能上有什么比VB6增强的地方?它和DELPHI相比较又如何呢?
我通过API读写的INI文件,倒底存在硬盘上的什么地方?
*.hlp文件是用什么编的.
请位哪位大侠知道java怎么发布成Windows平台下的EXE文件,用什么工具可以呀!!!(在线)
Application Server 对Web程序员到底有什么意义?
CSDN论坛助手里显示帖子标题用的是什么控件啊?
******Oracle有没有api库可调?在什么地方?用sdk帮助吗?*******
程序N次正常运行后突然无法通过编译,dimm.h是什么东西?请进...
dephi朋友,什么时候要用游标啊,怎么使用啊???有分啊!!!:)
高手,请问我将一个*.exe转化为*.dll,需要注意些什么问题?
请指教MFC的打印原理?有什么Frame等我怎么也不明白?
在PB中有什么函数可以获取当前日期10天后的日期?
考mcsd最好先看看什么书呀?200分
在WINDOWS环境下,如何知道一个进程(应用程序)正在运行,使用什么API,并给出用法,谢谢!
有什么办法可以修改邮件数据库中警告对话框的布局吗?
考mcsd最好先看看什么书呀?200分
使用什么软件可以制作网络拓扑图啊?
请问NTADMIN朋友,2002-05-09回复贴中AD代表的是什么?
http方式上传数据Post时,对数据有什么格式要求吗?
请问C++中的 reinterpret_cast 是什么意思?
请问一致代码段有什么用?
菜鸟问题:这段批处理是什么意思?
如果将"Hello,World"这样的程序写成*.dll的话需要注意什么?又该怎么写为好!
在检查邮件(使用javamail ati)时,如何显示文章内容?用什么方法?我的为什么不行?
使用控件调控EXCEL和使用COM调控EXCEL有什么不同
哪儿有路由啊 交换啊 什么的 模拟器下载!!谢谢不够再加!
请各位说说.net技术究竟带给我们什么?通俗的说说看好吗?
VC嵌入汇编有什么限制么?
局域网共享密码破解的原理是什么??
求教:在下实在不知道STL有什么用途?
applet 除了学要jdk还学要什么。?jre干什么?
请问用什么工具编译oracle的Pro*c
请教CDC当中的“路径”是什么来的阿?
java与C++的通信接口是什么阿?
请问大家学PB看什么书比较好?为什么?
你为了什么活着?
帮我看看,什么意思。我不懂。
那位高手能把下面这个java程序改进一下 不论在什么方面 做一些改良!!
谁知道在C++ BUILDER里面怎么去掉即时帮助吗?(输入代码时,它自动会给出一些代码的参数什么的!)
请教用DELPHI制作一个查询学校学生成绩的数据库系统该先具备些什么条件?
我下载了两个echangserer2000都是解压倒一定时候是就出错然后就不能进行了说什么出错?
用Reload的函数后,被刷新的界面总是弹出一个提示界面,“不重新发送数据,就无法刷新网页...”,有什么办法不让他弹出来,直接刷新啊!!
各位的托盘区都有些什么东西?(发完就去写程序)
这究竟是一只什么鸟?"Only one data module in per application"
怎么把一个.ICO文件装入得到HICON句柄呢?用什么函数呀?
什么地方有比较完整的用foxpro编写数据库系统供下载?
javabean和ejb到底有什么区别???
什么地方有比较完整的用foxpro编写数据库系统供下载?
需要在程序中对Table添加字段,请问我后台数据库用什么比较方便?
用什么办法可查看TC2.0的库函数!
WINDOWS网络编程方面有什么好书值得看呢?
用什么工具编辑asp.net最理想???
讨论,大家来看看这个程序该选择什么平台?
设计数据表时,Is RowGuid 一项是什么意思 啊?
请大家别忘了明天是什么日子!
请问怎样用微软提供的microsoft script debugger调试asp 呢?对asp有什么好的调试工具呢?
用Socket做网络功能有什么限制对很多用户而言如何提高效率?
有人知道那个sql语句中去除重复元素的关键词是什么么(50分,在线……)
用什么工具编写asp.net?
VC中用什么方法完成文件的复制?
字符集问题--jsp中charset参数值的简体中文值是什么,GB2312是繁体中文吧?
itoa 函数要包含什么头文件?
Screen.TwipsPerPixelX什么意思?
请问后缀名为clw的文件要用什么程序打开
用什么函数判断一个字符传中包含另一个字符串?谢谢!
啊~~~~`怎么什么都看不到啊~~~~````
请教歌位我要装SQLSERVER 是要装哪个版本啊,缺省的用户名和密码是什么啊(在线)
jcreator里workspace,project有什么区别阿?
怎样在JAVABEAN中得到APPLICATION变量,要传什么参数?
老是报道连接错误 不知什么原因?
请问硬盘分区表里的"隐含扇区数"是什么意思啊???
为什么在其他版面经常看到许多人都批判PB,是什么原因?
我什么时候需要用GlobalAlloc还是我只要用new/delete就够了?
每个人名字后边的绿色三角形是根据什么条件增加的?
有谁讲一下Debug与Release的具体有什么意义?
请问工具栏中可实现拖拉的Bar是什么?Delphi中有这方面的控件吗?
_T是什么意思,另外还有TV_DISPINFO结构,msdn中怎么没有
两个问题。一、TListView(vsReport,chekbox=true)什么事件响应其前面checkbox被击。二、见内
IEproxyInst是什么软件,怎么用
Javascropt的文件操作的方法是什么?
svhost.exe到底是什么东东啊,太吃内存了。
这个链接错误是什么意思??如何解决
请问:什么地方能找到2001年的高程试题???
特大新闻,俄罗斯要摧毁月球,天啊,真不敢想象,没有了月球我们人类会成什么样子!
|=运算符是什么意思
请问asp.net和asp在项目开发功能上有什么大的提高?
asp和asp.net有什么本质区别?
请教高手,VC程序刚启动时错误是什么原因?
请问DreamWaver UltaDev4.0 的代码所用的字体是什么字体?
显示器开机后总有噼里啪啦的放电声,一段时间后才消失请问是什么回事?
请问qos连接的path和resv消息,是通过什么函数发送的,win2000里?谢谢!!
谁做过协议测试,有什么感觉???
请问qos连接的path和resv消息,是通过什么函数发送的,win2000里?谢谢!!
有c++基础和一些开发经验的人,初学java应该看什么书?
请问qos连接的path和resv消息,是通过什么函数发送的,win2000里?谢谢!!
大学毕业要达到什么水平???
*.pdg档案用什么东西打开?
dreamweaver菜单上的 新建文件夹-ASK代码是什么意思?
■■■“ODBC驱动程序不支持动态集”,只好用snapshot,为避免数据操作错误要注意些什么?谢谢■■■
字节流和字符流有什么区别?
有上海的朋友吗?有谁知道 美国恩讯信息技术(上海)有限公司 是家什么公司吗?
我用一个窗体调用另一个窗体,调用过程大约需要5秒钟,怎样在这5秒钟加入点动画什么的,请高手帮忙啊?
为什么不是一个有效的win32程序
我发现服务器有CGI漏洞,请问这些都是什么漏洞?
这什么我的滚轮鼠标被IBm的WIN98se认成两键
interface 到底有什么用???实现接口,怎么实现??
我是一个ASP新手,怎样才能学习ASP?要注意一些什么地方?
请问WINXP SDK是什么东西,哪里有下载?(答问题者皆有分)
请问有什么好方法将一个结构对象动态地加入一个数组吗?
请问.ppt的文件应该用什么打开?还有应该怎么打开?
rpm安装后到什么地方找啊?
java用什么方法代替C++里的引用功能,菜鸟小问题
各位请帮个忙,说来也不是什么大问题!!
呵呵,什么叫加分呀?
看编译原理要什么程度的底子??
什么是复引用呢?我看了许多书都还是不明白这个词。
北京的ftp检索网站的地址是什么来着?
这也抛出异常,是什么原因???
如果让你给一帮从来没见过delphi的计算机系的学生做个报告,你会讲些什么?
我该看什么书啦!
大家看看,错在什么地方呀,分数多多
大家有什么好一点的有“语法检查”的控件
拿了五百分什么东西也不寄给我,放我鸽子啊?
请教高手有什么好的ASP上传组件?大家请帮帮忙啊?
老子火大了,什么玩艺?大家来看看
请问如果编写不要系统的软件?不知道叫什么~~ :)
这个错误是什么?
Invalidate函数有什么用?怎么使用它?
.net 7 张盘里分别放的是什么呀 ?有哪几张是必装的 ?
*.nlc用什么阅读器?在哪能下载它?
请问如果编写不要系统的软件?不知道叫什么~~ :) 这属于“嵌入式开发”吗? :)
悲哀,这叫什么水平,中泰上半场0:1!中国队如何踢世界杯???
请问在html中默认情况下,一个被访问过的链接是什么颜色(准确的数值)?谢谢!
IIS?变网页要设置他么?都有什么?大致说说行么?
我这条语句有什么错?
悲哀,这叫什么水平,中泰上半场0:1!中国队如何踢世界杯???
请各位大虾:国外有什么好的源代码网站?
我想考高程,不知道该看些什么书籍资料?
各位高手,我们这的机器的了什么病呀?分立刻会给的!!!
这是什么问题?
javabean 和 ejb到底有什么区别?????
有谁知道硬件加密是什么原理?
什么工具可以把PDF文件和PDG(超星打开)文件转化成文本格式的?
开发串口通信,用什么软件做测试,就不用硬件了。
我现在该看什么书关于c语言?
有没有什么编辑器在编辑javascript脚本时能给出提示信息?
超简单问题,从一个页转到另一个页的命令是什么?
请问,安装鼠标钩子之后,在回调函数中怎么判断是什么鼠标事件阿?
c/c++库中没有和vb中isnumeric功能相同的函数,请问有什么替代方法.
nodeT * head 是什么意思
当读注册表时就死机是什么原因,WINDOWS98系统。
接下来该看什么书!!!
大家机器上都装些什么常用软件?
VB 的数据库开发 有什么好的参考书????
什么叫句柄(handle)
你认为最好、最有用的认证考试什么?
请问用什么软件截屏得到的对话框或者窗体的图象最小
用户控件中的[Category("Test")]是什么东东?在VS.NET中怎么添加呀?
我不明白客户/服务器是什么!
网吧怎样装一个稳定的98母盘,服务器用2000SERVER,分机用98二板。应当注意什么?我听人说好难的哟!!
Java下作类似“不可思议的机器”那样的拖放用什么方法啊?
PDG文件要用什么打开?
Delphi中内存流和文件流有什么区别?
我想学学java,应该用什么编译器啊??
integrity和fixmog两命令功能是什么
初级问题:Sub Page_Load(Sender as object,e as EventArge)中sender和e是什么?
我要知道有几个根目录该用什么函数?
对话框中点击标题栏,最小化,还原最小化分别是什么消息啊?
这是什么错误?
资源管理器窗口的类名和WindowName是什么
很简单的问题:直线的两点式方程 与 点到直线的距离公式 是什么去了?(我忘了,现在编一个程序急需)
请问COMCT332.OCX是怎样的一个active?有什么用处
什么函数可以在带有"字符串前加个\
请问COMCT332.OCX(在\winnt\system\)是怎样的一个active?有什么用处
我要在java中生成、解析xml文档,请问相关接口是什么,其说明在哪里有?
什么是TNotifyEvent和TIndexEvent?
这个错误代码是什么意思?0X800A01AD
谁知道哈尔滨的程序员考试在哪里报名,什么时候!
有谁知道VB的三维控件在windows/system目录中的名称是什么 ,在线等待10分钟
作个调查:各位都用什么工具做帮助文件。
/////什么是控制台程序?
如何做到不论什么文件类型,点击后直接弹出“另存为”对话框?急用,谢谢
请问用什么图形浏览工具可以打开Coreldraw文件(*.cdr)?
显示关闭计算机画面久久不能关机.是什么回事?怎么办?windows98系统.
请问谁能帮我解释一下串口通讯中的CreateEvent()函数,它的参数什么意思,返回值等情况。谢谢
我们能做什么???????????来者有分
大家看看这个SQL语句有什么错误?
帮忙看看这段程序有什么问题,在关闭窗口是出错,
谁能告诉我取字符子串的函数是什么?
写一个反汇编程序要有一些什么知识?
int86()是什么意思,怎么用?哪有中断的说明?哪位能告诉我一下。
arrRow=rs.getRows 是做什么用的?谢谢
请问delphi中十六进制转化为十进制是用什么函数
请问Table、Query、ADOTable、ADOQuery各有什么区别和联系?那一个比较好?
!!!!!!!!!!!!!强烈建议给CSDN!!!!!!!!!!!!(看看,大家有什么想法)
*怎么这里只有谈XML没有谈SOAP的,还有什么是UDDI,谁能用通俗的说法解释一下
请问, mouse_event 函数中各个参数的含义都是什么呢?
1.两段html/html有什么意思?
大家帮我看一下,我的代码出了什么问题?
高分:有什么好的液晶显示时间的控件?tcl99如何用?(在线等待)
ID_OLE_INSERT_NEW的默认处理函数是什么?
请问大家一个很菜的问题,拖拽的事件是什么?(给第一个答对的),立即给分
uk是一块什么主板?
uk是一块什么主板?
请问什么是矢量跟踪?? 急!!!!!
初学者疑问 用户system和N/A是什么意思?
有没有什么好的算法能加密字符串
JB下,我的程序编译得好慢!请问用什么方法编译才可以快一点?或编译顺序改变一下?
computer browser是什么?
SWP是什么文件类型?
javaw命令有什么作用
web services 与.net framework是什么关系啊?
打包问题:如何知道工程(vbp)共用了什么ocx\dll等控件、动态连接库??
大家现在编程多采用什么结构?
请问什么是数据字典
谁知道在win2k底下有什么好用的51软件仿真器和编译器啊???在线等待。
谁知道后缀名为.class的文件是什么吗?
timer的值单位是什么?
谁知道后缀名为.class的文件是什么吗?
val = 16;使val前后发生了什么变化?
关于对软件设置时间限制,各位有什么好的思路吗?
是什么原因引起的错误呢。
请教一下 T *p=new T[5];和 T *p=(T) new char[sizeof(T)*5];有什么区别?
在程序编译完后,突然出现了如下问题,知道是什么原因吗?谢谢。
c#是不是还有象visual c++一样的别的编程工具?是什么?告诉我好么?
不知各位大侠编写ASP时是用什么编辑工具?请给下载地址,谢谢!
怎么关闭一个端口啊。有什么软件吗?
windows中父进程控制子进程能达到什么程度
请问有什么办法对软件进行汉化
◆◆◆我过两个月大学毕业后想去开网吧,不知道该学些什么?
大家看看这是什么错误?(立刻给分)
请问扫描端口的程序的思路是什么?
请问RemoveMenu和DeleteMenu的区别是什么?
pascal与c调用windows api有什么异同?
2002年的高程考试什么时候报名?
帮我看看这段程序有什么问题?
这是我的主页,总觉得好像少了什么东西?能给点建议吗?你给建议我给分!!!!!!!!!
有什么好的办法,给程序加上背景音乐?
非平台相关的,c++都开发什么?
请问高手,网页设计时红色是否一般不能和绿色搭配?为什么??网页设计时色彩搭配应注意什么?谢谢!
大家讨论一下学习“计算方法”有什么用,需要拿出多少精力学习?
大家用什么开发工具?JB6,WSAD4还是VA3.5
这是什么错误?
有什么算法把一个800x600的256色的图像压缩成原来的一半
DDR内存与SDRAM内存有什么区别,他们都用相同的插槽吗?能混用吗?
D3D的立即模式和保留模式什么区别啊?
谁能清楚的解释一下memcpy和memset的用法,他们到底是做什么用的?
access表的扩展名是什么啊
"access表的扩展名是什么啊"问题为解决,请刚才的朋友再帮帮忙
C++Builder6的CDKey是什么?
绝对菜鸟问题:这是什么用法啊,看不太明白
这个应用程序日志中的错误是什么意思??每次启动都有
onlineUserList=rs.getstring(2,,,chr(13)) 什么意思?谢谢
请问*.caj文件用何工具打开?此工具的名字叫什么?上哪下载?
C++学到什么程度可以"下山""?
xhtmL和XML是什么关系啊,谁详细解释一下
编辑php有什么工具
什么是动态PL/SQL?
我现在什么事情也不想做!
请问:框架framework,泛型(generic programing)是什么意思,
请问用什么方法能得到excel文件中表的名称和个数?
delete this之后会有什么后果?
杀毒用特征码外有什么好办法?
我刚刚开始学习VC,请问SDK,Win32API,MFC编程方法到底是什么意思。
请问在自定义mousemove事件时一般的eventid是什么?
用vc写STL程序需要VC的什么特别的设置吗?
请问DreamWaver UltaDev4.0 的代码所用的字体是什么字体?
iplanet web server 是做什么用的?
Window 无法加载配置文件,但已经用系统的默认配置文件登录--什么原因?
在asp.net里面写treeview应用程序的时候,需要加载什么,一个object基类怎么进行继承到可以使用treeview这个类呢?
我用javabean调用了一个类,但是出了点问题,请大家帮忙解决一下,很多论坛上都没解决我这个问题,不知道是太简单了还是别的什么。急急急
在asp.net里面写treeview应用程序的时候,需要加载什么,一个object基类怎么进行继承到可以使用treeview这个类呢?
谁能详细讲解一下ViewState的具体用法(最好能有代码),一个控件的EnableViewState属性为真为假时又有什么区别?
在asp.net里面写treeview应用程序的时候,需要加载什么,一个object基类怎么进行继承到可以使用treeview这个类呢?
用asp如何联接mssql数据库并操作它啊,另外用法和联access有什么区别吗在线等待
在asp.net里面写treeview应用程序的时候,需要加载什么,一个object基类怎么进行继承到可以使用treeview这个类呢?
请问在swing中的什么组件上,我可以画矩形和多边形,同时可以响应鼠标事件。
想好好学一下JAVA,想先从jsp入手,应该看一些什么书比较好,大虾们推荐几本好书?
我加入DLL,或EXE的资源文件被很容易的提取出来了(用提取资源的工具)有什么办法可以避免吗
在Delphi中加密一串字符,用什么算法比较好?
TCustomDBGrid.OnEditButtonClick触发一个什么事件?
请问各位,当用鼠标单击标题是发出什么消息
First chance exception时什么意思啊
存储过程中用什么来判断sql语句是否执行成功?
我这样用lock table有什么问题呢?正确的应该怎么用啊?
各位高手你们都用什么C++开发工具??
哪位高手知道dos和windows nt的启动部分是在什么操作系统下开发的?
谁知道clearcase是什么?
哪位高手知道dos和windows nt的启动部分是在什么操作系统下开发的?
开机时显示“disk i/o error,press any key ..."错误,进不了系统,请问什么缘故?硬盘坏了吗,但是可以检测到的亚
怎样建Paradox数据库和text数据库?用什么工具?
我要做一个2cm*0.5cm的图片,背景是灰色!前景是文字,如"首页"为白色,我在PHOTOSHOP 6.0中字总是模糊,不清晰,有什么办法吗?用哪种软件可以
directShow 和directX是什么?
Palette中component的图标放在什么地方,怎样把它copy出来?
这叫什么实例指南!!运行实例一样出错!(机械工业出版社出版的powerbuilder7.0实例学习指南
(2)[Yesue.com题选]用什么命令看到DNS地址
请问:用什么工具,以及如何编写应用程序的帮助文件?
(1)[Yesue.com题选]用什么命令看到DNS地址
请问谁知道什么地方可以下载jfcontrol
(3)[Yesue.com题选]用什么命令看到DNS地址
(4)[Yesue.com题选]用什么命令看到DNS地址
(5)[Yesue.com题选]用什么命令看到DNS地址
(6)[Yesue.com题选]用什么命令看到DNS地址
(11)[Yesue.com题选]用什么命令看到DNS地址
(12)[Yesue.com题选]用什么命令看到DNS地址
Object-Based与Object-Oriented的区别是什么?
(10)[Yesue.com题选]用什么命令看到DNS地址
怎样建立Paradox数据库?用什么工具??
用JDBC—ODBC桥连接数据库时,加载JDBC驱动程序的语句是Class.forName(),现在请教其参数是什么?请各位大虾指教!
这段代码是什么意思???
(9)[Yesue.com题选]用什么命令看到DNS地址
CSemaphore/CMutex/CCriticalSection/CEvent之间有什么区别啊
请问QQip中的wry.dll是不是数据库文件?是的话是什么格式的?
IKS 1.0 Demo 是什么软件?
当一个控件获得焦点,触发的是什么消息?请问消息名称
使用ASP建立用户邮箱时,所有参数是什么?
(8)[Yesue.com题选]用什么命令看到DNS地址
学delphi用什么书最好
Pocket PC 2002 和 WinCE 3.0 是什么关系?
(8)[Yesue.com题选]用什么命令看到DNS地址
请问什么地方可以下载jfcontrol
什么API函数能知道WINDOWS是英文版还是中文版
D3D的立即模式和保留模式什么区别啊?高分求教!
在某一事件中实现重绘窗口功能,应该调用什么函数?
我的applet出了什么问题???
真实的谎言.我装98装了一夜,光拷贝文件就有四个小时,请问这个是什么问题?
如何得到一个目录下所有的文件和子目录?函数是什么
相关问答
Q1: 学校布置了一个php简单整站作业。求高手指点,穷学生一个,愿意付200元作为报酬。
找本phpphp与数据字典的案例书籍来看看吧php与数据字典,一周你就会了, 学习不能这样啊
无非就是一些数据库查询输出
更具功能设计数据库 数据字典搞懂各个数据项之间的联系,就是查询输出了。
Q2: PHP的算法可以实现大数据分析吗
1.Bloom filter
适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集
基本原理及要点:
对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字,因为该关键字对应的位会牵动到其他的关键字。所以一个简单的改进就是 counting Bloom filter,用一个counter数组代替位数组,就可以支持删除了。
还有一个比较重要的问题,如何根据输入元素个数n,确定位数组m的大小及hash函数个数。当hash函数个数k=(ln2)*(m/n)时错误率最小。在错误率不大于E的情况下,m至少要等于n*lg(1/E)才能表示任意n个元素的集合。但m还应该更大些,因为还要保证bit数组里至少一半为 0,则m 应该=nlg(1/E)*lge 大概就是nlg(1/E)1.44倍(lg表示以2为底的对数)。
举个例子我们假设错误率为0.01,则此时m应大概是n的13倍。这样k大概是8个。
注意这里m与n的单位不同,m是bit为单位,而n则是以元素个数为单位(准确的说是不同元素的个数)。通常单个元素的长度都是有很多bit的。所以使用bloom filter内存上通常都是节省的。
扩展:
Bloom filter将集合中的元素映射到位数组中,用k(k为哈希函数个数)个映射位是否全1表示元素在不在这个集合中。Counting bloom filter(CBF)将位数组中的每一位扩展为一个counter,从而支持了元素的删除操作。Spectral Bloom Filter(SBF)将其与集合元素的出现次数关联。SBF采用counter中的最小值来近似表示元素的出现频率。
问题实例:给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL。如果是三个乃至n个文件呢?
根据这个问题我们来计算下内存的占用,4G=2^32大概是40亿*8大概是340亿,n=50亿,如果按出错率0.01算需要的大概是650亿个 bit。现在可用的是340亿,相差并不多,这样可能会使出错率上升些。另外如果这些urlip是一一对应的,就可以转换成ip,则大大简单了。
2.Hashing
适用范围:快速查找,删除的基本数据结构,通常需要总数据量可以放入内存
基本原理及要点:
hash函数选择,针对字符串,整数,排列,具体相应的hash方法。
碰撞处理,一种是open hashing,也称为拉链法;另一种就是closed hashing,也称开地址法,opened addressing。 ()
扩展:
d-left hashing中的d是多个的意思,我们先简化这个问题,看一看2-left hashing。2-left hashing指的是将一个哈希表分成长度相等的两半,分别叫做T1和T2,给T1和T2分别配备一个哈希函数,h1和h2。在存储一个新的key时,同时用两个哈希函数进行计算,得出两个地址h1[key]和h2[key]。这时需要检查T1中的h1[key]位置和T2中的h2[key]位置,哪一个位置已经存储的(有碰撞的)key比较多,然后将新key存储在负载少的位置。如果两边一样多,比如两个位置都为空或者都存储了一个key,就把新key 存储在左边的T1子表中,2-left也由此而来。在查找一个key时,必须进行两次hash,同时查找两个位置。
问题实例:
1).海量日志数据,提取出某日访问百度次数最多的那个IP。
IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。
3.bit-map
适用范围:可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下
基本原理及要点:使用bit数组来表示某些元素是否存在,比如8位电话号码
扩展:bloom filter可以看做是对bit-map的扩展
问题实例:
1)已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数。
8位最多99 999 999,大概需要99m个bit,大概10几m字节的内存即可。
2)2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。
将bit-map扩展一下,用2bit表示一个数即可,0表示未出现,1表示出现一次,2表示出现2次及以上。或者我们不用2bit来进行表示,我们用两个bit-map即可模拟实现这个2bit-map。
4.堆
适用范围:海量数据前n大,并且n比较小,堆可以放入内存
基本原理及要点:最大堆求前n小,最小堆求前n大。方法,比如求前n小,我们比较当前元素与最大堆里的最大元素,如果它小于最大元素,则应该替换那个最大元素。这样最后得到的n个元素就是最小的n个。适合大数据量,求前n小,n的大小比较小的情况,这样可以扫描一遍即可得到所有的前n元素,效率很高。
扩展:双堆,一个最大堆与一个最小堆结合,可以用来维护中位数。
问题实例:
1)100w个数中找最大的前100个数。
用一个100个元素大小的最小堆即可。
5.双层桶划分 ----其实本质上就是【分而治之】的思想,重在“分”的技巧上!
适用范围:第k大,中位数,不重复或重复的数字
基本原理及要点:因为元素范围很大,不能利用直接寻址表,所以通过多次划分,逐步确定范围,然后最后在一个可以接受的范围内进行。可以通过多次缩小,双层只是一个例子。
扩展:
问题实例:
1).2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。
有点像鸽巢原理,整数个数为2^32,也就是,我们可以将这2^32个数,划分为2^8个区域(比如用单个文件代表一个区域),然后将数据分离到不同的区域,然后不同的区域在利用bitmap就可以直接解决了。也就是说只要有足够的磁盘空间,就可以很方便的解决。
2).5亿个int找它们的中位数。
这个例子比上面那个更明显。首先我们将int划分为2^16个区域,然后读取数据统计落到各个区域里的数的个数,之后我们根据统计结果就可以判断中位数落到那个区域,同时知道这个区域中的第几大数刚好是中位数。然后第二次扫描我们只统计落在这个区域中的那些数就可以了。
实际上,如果不是int是int64,我们可以经过3次这样的划分即可降低到可以接受的程度。即可以先将int64分成2^24个区域,然后确定区域的第几大数,在将该区域分成2^20个子区域,然后确定是子区域的第几大数,然后子区域里的数的个数只有2^20,就可以直接利用direct addr table进行统计了。
6.数据库索引
适用范围:大数据量的增删改查
基本原理及要点:利用数据的设计实现方法,对海量数据的增删改查进行处理。
扩展:
问题实例:
7.倒排索引(Inverted index)
适用范围:搜索引擎,关键字查询
基本原理及要点:为何叫倒排索引?一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。
以英文为例,下面是要被索引的文本:
T0 = "it is what it is"
T1 = "what is it"
T2 = "it is a banana"
我们就能得到下面的反向文件索引:
"a": {2}
"banana": {2}
"is": {0, 1, 2}
"it": {0, 1, 2}
"what": {0, 1}
检索的条件"what", "is" 和 "it" 将对应集合的交集。
正向索引开发出来用来存储每个文档的单词的列表。正向索引的查询往往满足每个文档有序频繁的全文查询和每个单词在校验文档中的验证这样的查询。在正向索引中,文档占据了中心的位置,每个文档指向了一个它所包含的索引项的序列。也就是说文档指向了它包含的那些单词,而反向索引则是单词指向了包含它的文档,很容易看到这个反向的关系。
扩展:
问题实例:文档检索系统,查询那些文件包含了某单词,比如常见的学术论文的关键字搜索。
8.外排序
适用范围:大数据的排序,去重
基本原理及要点:外排序的归并方法,置换选择 败者树原理,最优归并树
扩展:
问题实例:
1).有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16个字节,内存限制大小是1M。返回频数最高的100个词。
这个数据具有很明显的特点,词的大小为16个字节,但是内存只有1m做hash有些不够,所以可以用来排序。内存可以当输入缓冲区使用。
9.trie树
适用范围:数据量大,重复多,但是数据种类小可以放入内存
基本原理及要点:实现方式,节点孩子的表示方式
扩展:压缩实现。
问题实例:
1).有10个文件,每个文件1G, 每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。要你按照query的频度排序 。
2).1000万字符串,其中有些是相同的(重复),需要把重复的全部去掉,保留没有重复的字符串。请问怎么设计和实现?
3).寻找热门查询:查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个,每个不超过255字节。
10.分布式处理 mapreduce
适用范围:数据量大,但是数据种类小可以放入内存
基本原理及要点:将数据交给不同的机器去处理,数据划分,结果归约。
扩展:
问题实例:
1).The canonical example application of MapReduce is a process to count the appearances of
each different word in a set of documents:
void map(String name, String document):
// name: document name
// document: document contents
for each word w in document:
EmitIntermediate(w, 1);
void reduce(String word, Iterator partialCounts):
// key: a word
// values: a list of aggregated partial counts
int result = 0;
for each v in partialCounts:
result += ParseInt(v);
Emit(result);
Here, each document is split in words, and each word is counted initially with a "1" value by
the Map function, using the word as the result key. The framework puts together all the pairs
with the same key and feeds them to the same call to Reduce, thus this function just needs to
sum all of its input values to find the total appearances of that word.
2).海量数据分布在100台电脑中,想个办法高效统计出这批数据的TOP10。
3).一共有N个机器,每个机器上有N个数。每个机器最多存O(N)个数并对它们操作。如何找到N^2个数的中数(median)?
经典问题分析
上千万or亿数据(有重复),统计其中出现次数最多的前N个数据,分两种情况:可一次读入内存,不可一次读入。
可用思路:trie树+堆,数据库索引,划分子集分别统计,hash,分布式计算,近似统计,外排序
所谓的是否能一次读入内存,实际上应该指去除重复后的数据量。如果去重后数据可以放入内存,我们可以为数据建立字典,比如通过 map,hashmap,trie,然后直接进行统计即可。当然在更新每条数据的出现次数的时候,我们可以利用一个堆来维护出现次数最多的前N个数据,当然这样导致维护次数增加,不如完全统计后在求前N大效率高。
如果数据无法放入内存。一方面我们可以考虑上面的字典方法能否被改进以适应这种情形,可以做的改变就是将字典存放到硬盘上,而不是内存,这可以参考数据库的存储方法。
当然还有更好的方法,就是可以采用分布式计算,基本上就是map-reduce过程,首先可以根据数据值或者把数据hash(md5)后的值,将数据按照范围划分到不同的机子,最好可以让数据划分后可以一次读入内存,这样不同的机子负责处理各种的数值范围,实际上就是map。得到结果后,各个机子只需拿出各自的出现次数最多的前N个数据,然后汇总,选出所有的数据中出现次数最多的前N个数据,这实际上就是reduce过程。
实际上可能想直接将数据均分到不同的机子上进行处理,这样是无法得到正确的解的。因为一个数据可能被均分到不同的机子上,而另一个则可能完全聚集到一个机子上,同时还可能存在具有相同数目的数据。比如我们要找出现次数最多的前100个,我们将1000万的数据分布到10台机器上,找到每台出现次数最多的前 100个,归并之后这样不能保证找到真正的第100个,因为比如出现次数最多的第100个可能有1万个,但是它被分到了10台机子,这样在每台上只有1千个,假设这些机子排名在1000个之前的那些都是单独分布在一台机子上的,比如有1001个,这样本来具有1万个的这个就会被淘汰,即使我们让每台机子选出出现次数最多的1000个再归并,仍然会出错,因为可能存在大量个数为1001个的发生聚集。因此不能将数据随便均分到不同机子上,而是要根据hash 后的值将它们映射到不同的机子上处理,让不同的机器处理一个数值范围。
而外排序的方法会消耗大量的IO,效率不会很高。而上面的分布式方法,也可以用于单机版本,也就是将总的数据根据值的范围,划分成多个不同的子文件,然后逐个处理。处理完毕之后再对这些单词的及其出现频率进行一个归并。实际上就可以利用一个外排序的归并过程。
另外还可以考虑近似计算,也就是我们可以通过结合自然语言属性,只将那些真正实际中出现最多的那些词作为一个字典,使得这个规模可以放入内存。
Q3: 学习php的二次开发需要了解哪些知识,如何才能够尽快的学会呢,要求是用destoon进行二次开发
1,html + css 知识,用来改模板。
2,Javascript 知识, 有一些页面事件,特效
3,php + mysql 知识,用于修改程序逻辑和数据处理
4,操作系统知识:网站架构与调优
多去官网,参考手册,二次开发入门、常量与变量、数据字典
Q4: mysql字符串转换成字典
mysql字符串转换成字典可以用php数据表转换成数据字典的程序。网上找到别人写好的php数据表转换成数据字典的程序export2.php,修改export2.php中连接数据库的信息(数据库IP、数据库名称、访问数据库的账号密码。
Q5: PHP查询结果如何对变量值进行排序?比如说一个评分系统,对每个人员的每项评分相加后的总分再进行排序!
数据库设计方法、规范与技巧
一、数据库设计过程
数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
1. 需求分析阶段
需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。
需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。
常用的调查方法有: 跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。
分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis,简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。
数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。
数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,
取值范围,取值含义,与其他数据项的逻辑关系}
数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
数据流描述={数据流名,说明,数据流来源,数据流去向,
组成:{数据结构},平均流量,高峰期流量}
数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,
组成:{数据结构},数据量,存取方式}
处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},
处理:{简要说明}}
2. 概念结构设计阶段
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。
概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。
概念模型特点:
(1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。
(2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。
概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术,用于建立系统信息模型。
使用IDEF1X方法创建E-R模型的步骤如下所示:
2.1 第零步——初始化工程
这个阶段的任务是从目的描述和范围描述开始,确定建模目标,开发建模计划,组织建模队伍,收集源材料,制定约束和规范。收集源材料是这阶段的重点。通过调查和观察结果,业务流程,原有系统的输入输出,各种报表,收集原始数据,形成了基本数据资料表。
2.2 第一步——定义实体
实体集成员都有一个共同的特征和属性集,可以从收集的源材料——基本数据资料表中直接或间接标识出大部分实体。根据源材料名字表中表示物的术语以及具有“代码”结尾的术语,如客户代码、代理商代码、产品代码等将其名词部分代表的实体标识出来,从而初步找出潜在的实体,形成初步实体表。
2.3 第二步——定义联系
IDEF1X模型中只允许二元联系,n元联系必须定义为n个二元联系。根据实际的业务需求和规则,使用实体联系矩阵来标识实体间的二元关系,然后根据实际情况确定出连接关系的势、关系名和说明,确定关系类型,是标识关系、非标识关系(强制的或可选的)还是非确定关系、分类关系。如果子实体的每个实例都需要通过和父实体的关系来标识,则为标识关系,否则为非标识关系。非标识关系中,如果每个子实体的实例都与而且只与一个父实体关联,则为强制的,否则为非强制的。如果父实体与子实体代表的是同一现实对象,那么它们为分类关系。
2.4 第三步——定义码
通过引入交叉实体除去上一阶段产生的非确定关系,然后从非交叉实体和独立实体开始标识侯选码属性,以便唯一识别每个实体的实例,再从侯选码中确定主码。为了确定主码和关系的有效性,通过非空规则和非多值规则来保证,即一个实体实例的一个属性不能是空值,也不能在同一个时刻有一个以上的值。找出误认的确定关系,将实体进一步分解,最后构造出IDEF1X模型的键基视图(KB图)。
2.5 第四步——定义属性
从源数据表中抽取说明性的名词开发出属性表,确定属性的所有者。定义非主码属性,检查属性的非空及非多值规则。此外,还要检查完全依赖函数规则和非传递依赖规则,保证一个非主码属性必须依赖于主码、整个主码、仅仅是主码。以此得到了至少符合关系理论第三范式的改进的IDEF1X模型的全属性视图。
2.6 第五步——定义其他对象和规则
定义属性的数据类型、长度、精度、非空、缺省值、约束规则等。定义触发器、存储过程、视图、角色、同义词、序列等对象信息。
3. 逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。设计逻辑结构应该选择最适于描述与表达相应概念结构的数据模型,然后选择最合适的DBMS。
将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一般遵循如下原则:
1)一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。
2)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。
3)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
4)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
5)三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。
6)同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。
7)具有相同码的关系模式可合并。
为了进一步提高数据库应用系统的性能,通常以规范化理论为指导,还应该适当地修改、调整数据模型的结构,这就是数据模型的优化。确定数据依赖。消除冗余的联系。确定各关系模式分别属于第几范式。确定是否要对它们进行合并或分解。一般来说将关系分解为3NF的标准,即:
表内的每一个值都只能被表达一次。
表内的每一行都应该被唯一的标识(有唯一键)。
表内不应该存储依赖于其他键的非键信息。
4. 数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
5. 数据库实施阶段
运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 数据库实施主要包括以下工作:用DDL定义数据库结构、组织数据入库 、编制与调试应用程序、数据库试运行 6. 数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。包括:数据库的转储和恢复、数据库的安全性、完整性控制、数据库性能的监督、分析和改进、数据库的重组织和重构造。
建模工具的使用
为加快数据库设计速度,目前有很多数据库辅助工具(CASE工具),如Rational公司的Rational Rose,CA公司的Erwin和Bpwin,Sybase公司的PowerDesigner以及Oracle公司的Oracle Designer等。
ERwin主要用来建立数据库的概念模型和物理模型。它能用图形化的方式,描述出实体、联系及实体的属性。ERwin支持IDEF1X方法。通过使用ERwin建模工具自动生成、更改和分析IDEF1X模型,不仅能得到优秀的业务功能和数据需求模型,而且可以实现从IDEF1X模型到数据库物理设计的转变。ERwin工具绘制的模型对应于逻辑模型和物理模型两种。在逻辑模型中,IDEF1X工具箱可以方便地用图形化的方式构建和绘制实体联系及实体的属性。在物理模型中,ERwin可以定义对应的表、列,并可针对各种数据库管理系统自动转换为适当的类型。
设计人员可根据需要选用相应的数据库设计建模工具。例如需求分析完成之后,设计人员可以使用Erwin画ER图,将ER图转换为关系数据模型,生成数据库结构;画数据流图,生成应用程序。
二、数据库设计技巧
1. 设计数据库之前(需求分析阶段)
1) 理解客户需求,询问用户如何看待未来需求变化。让客户解释其需求,而且随着开发的继续,还要经常询问客户保证其需求仍然在开发的目的之中。
2) 了解企业业务可以在以后的开发阶段节约大量的时间。
3) 重视输入输出。
在定义数据库表和字段需求(输入)时,首先应检查现有的或者已经设计出的报表、查询和视图(输出)以决定为了支持这些输出哪些是必要的表和字段。
举例:假如客户需要一个报表按照邮政编码排序、分段和求和,你要保证其中包括了单独的邮政编码字段而不要把邮政编码糅进地址字段里。
4) 创建数据字典和ER 图表
ER 图表和数据字典可以让任何了解数据库的人都明确如何从数据库中获得数据。ER图对表明表之间关系很有用,而数据字典则说明了每个字段的用途以及任何可能存在的别名。对SQL 表达式的文档化来说这是完全必要的。
5) 定义标准的对象命名规范
数据库各种对象的命名必须规范。
2. 表和字段的设计(数据库逻辑设计)
表设计原则
1) 标准化和规范化
数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF 标准的数据库的表设计原则是:“One Fact in One Place”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据。
举例:某个存放客户及其有关定单的3NF 数据库就可能有两个表:Customer 和Order。Order 表不包含定单关联客户的任何信息,但表内会存放一个键值,该键指向Customer 表里包含该客户信息的那一行。
事实上,为了效率的缘故,对表不进行标准化有时也是必要的。
2) 数据驱动
采用数据驱动而非硬编码的方式,许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性。
举例,假如用户界面要访问外部数据源(文件、XML 文档、其他数据库等),不妨把相应的连接和路径信息存储在用户界面支持表里。还有,如果用户界面执行工作流之类的任务(发送邮件、打印信笺、修改记录状态等),那么产生工作流的数据也可以存放在数据库里。角色权限管理也可以通过数据驱动来完成。事实上,如果过程是数据驱动的,你就可以把相当大的责任推给用户,由用户来维护自己的工作流过程。
3) 考虑各种变化
在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。 举例,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓等)。所以,在建立系统存储客户信息时,在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化。
字段设计原则
4) 每个表中都应该添加的3 个有用的字段
dRecordCreationDate,在VB 下默认是Now(),而在SQL Server 下默认为GETDATE()
sRecordCreator,在SQL Server 下默认为NOT NULL DEFAULT USER
nRecordVersion,记录的版本标记;有助于准确说明记录中出现null 数据或者丢失数据的原因
5) 对地址和电话采用多个字段
描述街道地址就短短一行记录是不够的。Address_Line1、Address_Line2 和Address_Line3 可以提供更大的灵活性。还有,电话号码和邮件地址最好拥有自己的数据表,其间具有自身的类型和标记类别。
6) 使用角色实体定义属于某类别的列
在需要对属于特定类别或者具有特定角色的事物做定义时,可以用角色实体来创建特定的时间关联关系,从而可以实现自我文档化。
举例:用PERSON 实体和PERSON_TYPE 实体来描述人员。比方说,当John Smith, Engineer 提升为John Smith, Director 乃至最后爬到John Smith, CIO 的高位,而所有你要做的不过是改变两个表PERSON 和PERSON_TYPE 之间关系的键值,同时增加一个日期/时间字段来知道变化是何时发生的。这样,你的PERSON_TYPE 表就包含了所有PERSON 的可能类型,比如Associate、Engineer、Director、CIO 或者CEO 等。还有个替代办法就是改变PERSON 记录来反映新头衔的变化,不过这样一来在时间上无法跟踪个人所处位置的具体时间。
7) 选择数字类型和文本类型尽量充足
在SQL 中使用smallint 和tinyint 类型要特别小心。比如,假如想看看月销售总额,总额字段类型是smallint,那么,如果总额超过了$32,767 就不能进行计算操作了。
而ID 类型的文本字段,比如客户ID 或定单号等等都应该设置得比一般想象更大。假设客户ID 为10 位数长。那你应该把数据库表字段的长度设为12 或者13 个字符长。但这额外占据的空间却无需将来重构整个数据库就可以实现数据库规模的增长了。
8) 增加删除标记字段
在表中包含一个“删除标记”字段,这样就可以把行标记为删除。在关系数据库里不要单独删除某一行;最好采用清除数据程序而且要仔细维护索引整体性。
3. 选择键和索引(数据库逻辑设计)
键选择原则:
1) 键设计4 原则
为关联字段创建外键。
所有的键都必须唯一。
避免使用复合键。
外键总是关联唯一的键字段。
2) 使用系统生成的主键
设计数据库的时候采用系统生成的键作为主键,那么实际控制了数据库的索引完整性。这样,数据库和非人工机制就有效地控制了对存储数据中每一行的访问。采用系统生成键作为主键还有一个优点:当拥有一致的键结构时,找到逻辑缺陷很容易。
3) 不要用用户的键(不让主键具有可更新性)
在确定采用什么字段作为表的键的时候,可一定要小心用户将要编辑的字段。通常的情况下不要选择用户可编辑的字段作为键。
4) 可选键有时可做主键
把可选键进一步用做主键,可以拥有建立强大索引的能力。
索引使用原则:
索引是从数据库中获取数据的最高效方式之一。95%的数据库性能问题都可以采用索引技术得到解决。
1) 逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引。考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写。
2) 大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上。
3) 不要索引memo/note 字段,不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间。
4) 不要索引常用的小型表
不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了。对这些插入和删除操作的索引维护可能比扫描表空间消耗更多的时间。
4. 数据完整性设计(数据库逻辑设计)
1) 完整性实现机制:
实体完整性:主键
参照完整性:
父表中删除数据:级联删除;受限删除;置空值
父表中插入数据:受限插入;递归插入
父表中更新数据:级联更新;受限更新;置空值
DBMS对参照完整性可以有两种方法实现:外键实现机制(约束规则)和触发器实现机制
用户定义完整性:
NOT NULL;CHECK;触发器
2) 用约束而非商务规则强制数据完整性
采用数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于商务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。
3) 强制指示完整性
在有害数据进入数据库之前将其剔除。激活数据库系统的指示完整性特性。这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件。
4) 使用查找控制数据完整性
控制数据完整性的最佳方式就是限制用户的选择。只要有可能都应该提供给用户一个清晰的价值列表供其选择。这样将减少键入代码的错误和误解同时提供数据的一致性。某些公共数据特别适合查找:国家代码、状态代码等。
5) 采用视图
为了在数据库和应用程序代码之间提供另一层抽象,可以为应用程序建立专门的视图而不必非要应用程序直接访问数据表。这样做还等于在处理数据库变更时给你提供了更多的自由。
5. 其他设计技巧
1) 避免使用触发器
触发器的功能通常可以用其他方式实现。在调试程序时触发器可能成为干扰。假如你确实需要采用触发器,你最好集中对它文档化。
2) 使用常用英语(或者其他任何语言)而不要使用编码
在创建下拉菜单、列表、报表时最好按照英语名排序。假如需要编码,可以在编码旁附上用户知道的英语。
3) 保存常用信息
让一个表专门存放一般数据库信息非常有用。在这个表里存放数据库当前版本、最近检查/修复(对Access)、关联设计文档的名称、客户等信息。这样可以实现一种简单机制跟踪数据库,当客户抱怨他们的数据库没有达到希望的要求而与你联系时,这样做对非客户机/服务器环境特别有用。
4) 包含版本机制
在数据库中引入版本控制机制来确定使用中的数据库的版本。时间一长,用户的需求总是会改变的。最终可能会要求修改数据库结构。把版本信息直接存放到数据库中更为方便。
5) 编制文档
对所有的快捷方式、命名规范、限制和函数都要编制文档。
采用给表、列、触发器等加注释的数据库工具。对开发、支持和跟踪修改非常有用。
对数据库文档化,或者在数据库自身的内部或者单独建立文档。这样,当过了一年多时间后再回过头来做第2 个版本,犯错的机会将大大减少。
6) 测试、测试、反复测试
建立或者修订数据库之后,必须用用户新输入的数据测试数据字段。最重要的是,让用户进行测试并且同用户一道保证选择的数据类型满足商业要求。测试需要在把新数据库投入实际服务之前完成。
7) 检查设计
在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库。换句话说,针对每一种最终表达数据的原型应用,保证你检查了数据模型并且查看如何取出数据。
三、数据库命名规范
1. 实体(表)的命名
1) 表以名词或名词短语命名,确定表名是采用复数还是单数形式,此外给表的别名定义简单规则(比方说,如果表名是一个单词,别名就取单词的前4 个字母;如果表名是两个单词,就各取两个单词的前两个字母组成4 个字母长的别名;如果表的名字由3 个单词组成,从头两个单词中各取一个然后从最后一个单词中再取出两个字母,结果还是组成4 字母长的别名,其余依次类推)
对工作用表来说,表名可以加上前缀WORK_ 后面附上采用该表的应用程序的名字。在命名过程当中,根据语义拼凑缩写即可。注意,由于ORCLE会将字段名称统一成大写或者小写中的一种,所以要求加上下划线。
举例:
定义的缩写 Sales: Sal 销售;
Order: Ord 订单;
Detail: Dtl 明细;
则销售订单明细表命名为:Sal_Ord_Dtl;
2) 如果表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词。
举例:
定义的缩写 Material Ma 物品;
物品表名为:Material, 而不是 Ma.
但是字段物品编码则是:Ma_ID;而不是Material_ID
3) 所有的存储值列表的表前面加上前缀Z
目的是将这些值列表类排序在数据库最后。
4) 所有的冗余类的命名(主要是累计表)前面加上前缀X
冗余类是为了提高数据库效率,非规范化数据库的时候加入的字段或者表
5) 关联类通过用下划线连接两个基本类之后,再加前缀R的方式命名,后面按照字母顺序罗列两个表名或者表名的缩写。
关联表用于保存多对多关系。
如果被关联的表名大于10个字母,必须将原来的表名的进行缩写。如果没有其他原因,建议都使用缩写。
举例:表Object与自身存在多对多的关系,则保存多对多关系的表命名为:R_Object;
表 Depart和Employee;存在多对多的关系;则关联表命名为R_Dept_Emp
2. 属性(列)的命名
1) 采用有意义的列名,表内的列要针对键采用一整套设计规则。每一个表都将有一个自动ID作为主健,逻辑上的主健作为第一组候选主健来定义,如果是数据库自动生成的编码,统一命名为:ID;如果是自定义的逻辑上的编码则用缩写加“ID”的方法命名。如果键是数字类型,你可以用_NO 作为后缀;如果是字符类型则可以采用_CODE 后缀。对列名应该采用标准的前缀和后缀。
举例:销售订单的编号字段命名:Sal_Ord_ID;如果还存在一个数据库生成的自动编号,则命名为:ID。
2) 所有的属性加上有关类型的后缀,注意,如果还需要其它的后缀,都放在类型后缀之前。
注: 数据类型是文本的字段,类型后缀TX可以不写。有些类型比较明显的字段,可以不写类型后缀。
3) 采用前缀命名
给每个表的列名都采用统一的前缀,那么在编写SQL表达式的时候会得到大大的简化。这样做也确实有缺点,比如破坏了自动表连接工具的作用,后者把公共列名同某些数据库联系起来。
3. 视图的命名
1) 视图以V作为前缀,其他命名规则和表的命名类似;
2) 命名应尽量体现各视图的功能。
4. 触发器的命名
触发器以TR作为前缀,触发器名为相应的表名加上后缀,Insert触发器加'_I',Delete触发器加'_D',Update触发器加'_U',如:TR_Customer_I,TR_Customer_D,TR_Customer_U。
5. 存储过程名
存储过程应以'UP_'开头,和系统的存储过程区分,后续部分主要以动宾形式构成,并用下划线分割各个组成部分。如增加代理商的帐户的存储过程为'UP_Ins_Agent_Account'。
6. 变量名
变量名采用小写,若属于词组形式,用下划线分隔每个单词,如@my_err_no。
7. 命名中其他注意事项
1) 以上命名都不得超过30个字符的系统限制。变量名的长度限制为29(不包括标识字符@)。
2) 数据对象、变量的命名都采用英文字符,禁止使用中文命名。绝对不要在对象名的字符之间留空格。
3) 小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突
5) 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。
php与数据字典的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php与数据库、php与数据字典的信息别忘了在本站进行查找喔。







