通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>在线服务>>疑难解答>>正文 新版上线![旧版]
注:打开慢时请稍等

讨论:几个效率等问题和众兄弟探讨

http://www.iyit.net  日期:2006-10-6 15:36:41  来源:iyit.net收集  点击:
参加讨论
1.  使用include还是function效率高?  
 
将公用html代码分多个文件进行include好还是function一下return  $str好?include可能include好几  
 
次,而function只需要include一次,初始化一次,虽然要执行很多次。不过我还是不知道哪个效率高点  
 
。  
 
 
2.  单文件读取好还是分文件读取好?  
 
我习惯,而且很喜欢使用单个index.php文件来包含,如:  
 
<?php  
 
           //index.php  
           require  "header.php";  
           case  aa:  
                       require  "xx.php";  
           break;  
           case  bb:  
                       require  "xxx.php";  
           break;  
 
           ......  
 
           default  require  "xxxx.php";  
           require  "footer.php";  
 
?>  
 
这样的好处是文件重用性非常好,感觉很好控制,但是每次载入页面都是读取index.php文件,虽然可能  
 
读取的内容都不多,不过要是10000人同时访问,那么执行效率如何?  
 
另一种方法是分文件。比如:  
 
<?php  
 
           //index.php  
           require  "header.php";  
           require  "main.php";  
           require  "footer.php";  
 
?>  
 
<?php  
 
           //login.php  
           require  "header.php";  
           require  "login_main.php";  
           require  "footer.php";  
 
?>  
 
.........  
 
 
这样的分散文件来组成整个系统,但是这样就多了好多require等重复代码。显然要是10000人同时访问  
 
这些文件,其实还是10000人同时require一次header.php和footer.php,不过感觉上比单个index.php分  
 
散,我现在还是不知道哪个效率高点,哪个更好一点。  
 
 
3.  权限问题。  
 
目前不知道有什么好的权限控制方法,我所知道的是“组”的概念和“权限”概念。  
我看了一下fb论坛的数据库设计,发现有一张“用户组”的表和一张“权限表”,两张表内容基本相同  
 
,请问这样做的好处是什么?为什么还要开辟另外一张权限表?这两张用途上有什么不同?  
 
附两张表:  
 
create  table  fb_permissions  (  
   permissionid  int(4)  unsigned  not  null  default  '0',  
   userid  int(10)  unsigned  not  null  default  '0',  
   usergroupid  int(10)  unsigned  not  null  default  '0',  
   forumid  int(3)  not  null  default  '0',  
   canview  enum('y','n')  not  null  default  'y',  
   cancreatetopic  enum('y','n','c')  not  null  default  'y',  
   canpost  enum('y','n')  not  null  default  'y',  
   cancreatepoll  enum('y','n')  not  null  default  'y',  
   canupload  enum('y','n')  not  null  default  'y',  
   canvote  enum('y','n')  not  null  default  'y',  
   canmovetopic  enum('y','n')  not  null  default  'y',  
   canlock  enum('y','n')  not  null  default  'y',  
   candeletetopic  enum('y','n')  not  null  default  'y',  
   canedittopic  enum('y','n')  not  null  default  'y',  
   caneditpost  enum('y','n')  not  null  default  'y',  
   candeletepost  enum('y','n')  not  null  default  'y',  
   canrate  enum('y','n')  not  null  default  'y',  
   candistillate  enum('y','n')  not  null  default  'y',  
   canannounce  enum('y','n')  not  null  default  'y',  
   cansetpermissions  enum('y','n')  not  null  default  'y',  
   ismoderator  enum('y','n')  not  null  default  'y',  
   primary  key    (permissionid)  
)  type=myisam;  
 
create  table  fb_usergroup  (  
   usergroupid  int(3)  unsigned  not  null  default  '0',  
   groupname  varchar(20)  not  null  default  '',  
   title  varchar(255)  not  null  default  '',  
   canview  enum('y','n')  not  null  default  'y',  
   cancreatetopic  enum('y','n','c')  not  null  default  'y',  
   canpost  enum('y','n')  not  null  default  'y',  
   cancreatepoll  enum('y','n')  not  null  default  'y',  
   canupload  enum('y','n')  not  null  default  'y',  
   canvote  enum('y','n')  not  null  default  'y',  
   canmovetopic  enum('y','n')  not  null  default  'n',  
   canlock  enum('y','n')  not  null  default  'n',  
   candeletetopic  enum('y','n')  not  null  default  'n',  
   canedittopic  enum('y','n')  not  null  default  'n',  
   caneditpost  enum('y','n')  not  null  default  'n',  
   candeletepost  enum('y','n')  not  null  default  'n',  
   canrate  enum('y','n')  not  null  default  'n',  
   candistillate  enum('y','n')  not  null  default  'n',  
   caneditprofile  enum('y','n')  not  null  default  'n',  
   candeleteuser  enum('y','n')  not  null  default  'n',  
   canannounce  enum('y','n')  not  null  default  'n',  
   cansetpermissions  enum('y','n')  not  null  default  'n',  
   canadmin  enum('y','n')  not  null  default  'n',  
   primary  key    (usergroupid)  
)  type=myisam;  
 
 
4.  使用数据库效率高还是使用文本读取效率高。  
 
比如论坛分类,是直接放在文件里好,还是放在数据库里效率高?如果分类比较固定,而不是随时修改  
 
和添加,是不是文件比较好?比如:  
 
<?php  
 
           //forum.php  
           $forumclassid1        =  1;  
           $forumclassorder1  =  2;  
           $forumclassname1    =  "测试分类一";  
           $forumclassadmin1  =  "会员一";  
           $forumclassinfo1    =  "分类说明一";  
 
           $forumclassid2        =  2;  
           $forumclassorder2  =  1;  
           $forumclassname2    =  "测试分类二";  
           $classadmin2            =  "会员二";  
           $forumclassinfo2    =  "分类说明二";  
           //............  
 
?>  
 
数据库的好处是添加修改比较方便,但是要是不是频繁修改和添加呢?  
 
 
暂时就这些,呵呵,我写的代码不多,经验还很不足,请各位兄弟多指点。  
---------------------------------------------------------------  
 
都查不多吧  
帮你up  
---------------------------------------------------------------  
 
要是不是频繁修改和添加,还是用文件较好,至少没有了操作数据库的时间。  
你的forum.php的方式当然是可以的,但存在占用较多的有明显示意的变量。并且这些变量若用于函数或类的时候,声明为全局变量较为烦琐  
所以也可按ini文件格式书写,把forum.php改写为  
;<?  
[forumclass1]  
id        =  1  
order  =  2  
name    =  "测试分类一"  
admin  =  "会员一"  
info    =  "分类说明一"  
 
[forumclass2]  
id        =  2  
order  =  1  
name    =  "测试分类二"  
admin            =  "会员二"  
info    =  "分类说明二"  
;?>  
 
程序中  
$ar  =  parse_ini_file("forum.php",true);  
就可得到数组  
array  
(  
       [forumclass1]  =>  array  
               (  
                       [id]  =>  1  
                       [order]  =>  2  
                       [name]  =>  测试分类一  
                       [admin]  =>  会员一  
                       [info]  =>  分类说明一  
               )  
 
       [forumclass2]  =>  array  
               (  
                       [id]  =>  2  
                       [order]  =>  1  
                       [name]  =>  测试分类二  
                       [admin]  =>  会员二  
                       [info]  =>  分类说明二  
               )  
 
)  
用起来是否方便些呢?  
 
---------------------------------------------------------------  
 
up  对于第二点我非常赞同,因为我一直是这么干的,至于效率我自己也不太清楚,帮你顶一下,顺便也学习学习,还要高手们多多指教啊.  
---------------------------------------------------------------  
 
1  如果你的那个函数经常需要用到,且数目不多的可以考虑做成  function  ,如果function多,建议放在一个  
文件中,然后include  到需要用的文件中。  
 
2  个人喜欢用  单个文件形式  
 
 
3  。。。  。。。  
 
 
4。  如果数据量小,可以考虑用文本文件。。。如果太复杂  ,数据库当然是最佳的选择  
---------------------------------------------------------------  
 
如果你看过win或unix的权限管理,你就会明白了~~~  
 
用户隶属于某个组,他就拥有某个组的权限。但是这并不够,或者说不够灵活~~  
 
那么它自己还有一些权限可以灵活设置~~~~  
 
部分原因还因为某些权限属于系统权限,而某些权限属于私有权限~~~~~  
 
比如mysql中,你在user表上可是设置系统权限~~~在db表上可以设置用户对某一数据库的权限~~  
---------------------------------------------------------------  
 
1、function在调用的时候每次都要在内存中copy一份出来。效率不好  
 
2、为防止多次include和require,一定要使用  include_once  和require_once。强烈建议忘记  include和  require  我一般的用法是在/下写个config.php,里面define变量。require_once("files")....。然后调用。这样方便的多。即使损失一点效率也是值的得。  
 
3、文件系统的效率比数据库系统要好,但这局限于系统的i/o,象你这种情况当然使用文件系统。  
 
4、权限设计中主要是讲究  
     a、用户权限  
     b、组权限  
     c、系统权限  
三者相加就是用户实际权限。  
最近我会写一篇我的权限设计方法,理论性可能不高,但绝对实用,也适合模块化设计。  
---------------------------------------------------------------  
 
系统权限即我所谓角色权限。

编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:怎么给多维数组排序?
下一篇:关闭缓冲后再输出为什么没输出内容了?
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
我在windows  xp上安装apache2.044+ph
apache+php,怎样打开session支持??
在linux中怎么配置pdflib和php  高分!
怎么样同时解释.php和.php3的文件呀,
php 4.1.0 及以后版本使用post变量的接
我的qq被盗走的原因分析
webqq好玩不?大鸟带你一起体验
奇奇怪怪的qq密技十五招
qq被盗到出售过程详解
微软winxp sp3再次跳票 推至08年发布
google苹果合作浏览器 防恶意网站
微软操作系统实现开源?
网管应当如何管理windows操作系统?
让windows xp系统锁定期间拒绝关机
windowsvista中文版11月30日正式发布
我在windows  xp上安装apache2.044+ph
php 在linux 下如何開啟ftp功能
apache2-win32+php的成功安装方法
怎么删除mysql???
apache+php,怎样打开session支持??
合并vcd片断、快速删除文件夹--dos命令
dos教程 dos命令基础应用
破解qq密码如此简单 
低格、分区、高格的应对--dos命令应用
一劳永逸--批处理命令(一)
qq2006 beta3隆重发布 实用功能一一奉
美国微软总部相中重庆15岁网络奇才(图
qq号码激活的常见问题及案例分析 
sql server安装文件挂起错误解决办法
三分钟让你的系统变处女:acronis tru
exeplorer.exe错误的问题的总结、解决
我的qq被盗走的原因分析
webqq好玩不?大鸟带你一起体验
奇奇怪怪的qq密技十五招
qq被盗到出售过程详解
google苹果合作浏览器 防恶意网站
网管应当如何管理windows操作系统?
让windows xp系统锁定期间拒绝关机
windowsvista中文版11月30日正式发布
google优化网站管理员指导方针
hilltop算法- 探索google排名新算法

设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息