如果储存在数据库(只读的表),那么每一个业务都需要查询一张或多张这样的静态数据表。
如果直接以关联数组的形式储存在PHP业务层(当然是从EXCEL策划表架构自动产生的PHP代码),那么对庞大的关联数组进行定义、操作似乎也会影响服务器PHP文件执行效率。
相比之下,上述两种选择哪种效率更高?相当于说把压力放在MYSQL层上还是PHP层上,哪个更轻松。
如果觉得我还没表述清楚请回帖说明,我会补充说明的。
13 个解决方案
#1
比如
每升一级需要多少经验,比如每个城市、每个道具的各项参数等等
如果升级是由 php 代码完成的,那么存成什么都无所谓
如果升级是由 SQL 指令码完成的,那么当然要存成表,以便后台实现
如果升级是由 php 代码完成的,那么存成什么都无所谓
如果升级是由 SQL 指令码完成的,那么当然要存成表,以便后台实现
#2
目前还没想过把业务逻辑写在SQL指令里。感觉这样的业务用SQL语言写不太方便吧。
如果单从PHP代码实现业务逻辑上考虑,存成MYSQL表还是存成PHP关联数组,二者有没有什么优劣呢
#3
无论用何种方式存储,逻辑控制都不能写死在 php 代码中
否则规则发生变化时,容易造成修改代码时的顾此失彼(虽然写死在代码中是简单的)
否则规则发生变化时,容易造成修改代码时的顾此失彼(虽然写死在代码中是简单的)
#4
无论用何种方式存储,逻辑控制都不能写死在 php 代码中
否则规则发生变化时,容易造成修改代码时的顾此失彼(虽然写死在代码中是简单的)
否则规则发生变化时,容易造成修改代码时的顾此失彼(虽然写死在代码中是简单的)
#5
个人觉得你这个有点像是系统配置的信息一样。量多的话建议放在数据库中吧,放到缓存中方便读取
#6
先谢谢楼上两位的回答。然而我还是有点困惑,比如说xuzuning版主说的逻辑控制不能全写在PHP,那么意思是应该写在MYSQL存储过程中吗?我觉得对于WEB游戏中复杂而多变的业务逻辑来说,写在存储过程里有点难啊。。
#7
自己顶。。。
#8
为什么非要二选一呢,结合使用不行吗
数据源就放在mysql里,维护也是直接更新库里的数据
然后写一个程序,将每一组静态数据缓存成一个php脚本文件,例如:升级经验.data.php:<?php return array(1=>1, 2=> 2)...
需要用到数据时,$升级经验 = include '升级经验.data.php';
分成多文件保存,用哪个读哪个,避免大量声明
数据更新时,改好mysql里的数据,将缓存文件删掉重新运行程序生成即可
数据源就放在mysql里,维护也是直接更新库里的数据
然后写一个程序,将每一组静态数据缓存成一个php脚本文件,例如:升级经验.data.php:<?php return array(1=>1, 2=> 2)...
需要用到数据时,$升级经验 = include '升级经验.data.php';
分成多文件保存,用哪个读哪个,避免大量声明
数据更新时,改好mysql里的数据,将缓存文件删掉重新运行程序生成即可
#9
你的意思相当于还是说,数据最终存在PHP里,只不过是生成的。。和放在EXCEL里生成PHP静态数据文件差不多啊
#10
个人感觉可以存数据库和redis里,
一般获取从redis来,如果redis没有值就去mysql获取
mysql的值通过php设置
只要维护好mysql和redis的同步(比如mysql重启就更新redis,mysql更新也更新redis)
这样又好维护,也能直接放内存中,维护和访问速度都没问题
同二楼,不推荐放php代码中,这是最不好的办法。。。如果你真的要,那就在一个公共文件中define...
楼主自己取舍
一般获取从redis来,如果redis没有值就去mysql获取
mysql的值通过php设置
只要维护好mysql和redis的同步(比如mysql重启就更新redis,mysql更新也更新redis)
这样又好维护,也能直接放内存中,维护和访问速度都没问题
同二楼,不推荐放php代码中,这是最不好的办法。。。如果你真的要,那就在一个公共文件中define...
楼主自己取舍
#11
erlang...
#12
呃。那请问如果存在PHP里的劣势主要是不好维护还是效率低呢?
#13
自己再顶一下。。
#1
比如
每升一级需要多少经验,比如每个城市、每个道具的各项参数等等
如果升级是由 php 代码完成的,那么存成什么都无所谓
如果升级是由 SQL 指令码完成的,那么当然要存成表,以便后台实现
如果升级是由 php 代码完成的,那么存成什么都无所谓
如果升级是由 SQL 指令码完成的,那么当然要存成表,以便后台实现
#2
目前还没想过把业务逻辑写在SQL指令里。感觉这样的业务用SQL语言写不太方便吧。
如果单从PHP代码实现业务逻辑上考虑,存成MYSQL表还是存成PHP关联数组,二者有没有什么优劣呢
#3
无论用何种方式存储,逻辑控制都不能写死在 php 代码中
否则规则发生变化时,容易造成修改代码时的顾此失彼(虽然写死在代码中是简单的)
否则规则发生变化时,容易造成修改代码时的顾此失彼(虽然写死在代码中是简单的)
#4
无论用何种方式存储,逻辑控制都不能写死在 php 代码中
否则规则发生变化时,容易造成修改代码时的顾此失彼(虽然写死在代码中是简单的)
否则规则发生变化时,容易造成修改代码时的顾此失彼(虽然写死在代码中是简单的)
#5
个人觉得你这个有点像是系统配置的信息一样。量多的话建议放在数据库中吧,放到缓存中方便读取
#6
先谢谢楼上两位的回答。然而我还是有点困惑,比如说xuzuning版主说的逻辑控制不能全写在PHP,那么意思是应该写在MYSQL存储过程中吗?我觉得对于WEB游戏中复杂而多变的业务逻辑来说,写在存储过程里有点难啊。。
#7
自己顶。。。
#8
为什么非要二选一呢,结合使用不行吗
数据源就放在mysql里,维护也是直接更新库里的数据
然后写一个程序,将每一组静态数据缓存成一个php脚本文件,例如:升级经验.data.php:<?php return array(1=>1, 2=> 2)...
需要用到数据时,$升级经验 = include '升级经验.data.php';
分成多文件保存,用哪个读哪个,避免大量声明
数据更新时,改好mysql里的数据,将缓存文件删掉重新运行程序生成即可
数据源就放在mysql里,维护也是直接更新库里的数据
然后写一个程序,将每一组静态数据缓存成一个php脚本文件,例如:升级经验.data.php:<?php return array(1=>1, 2=> 2)...
需要用到数据时,$升级经验 = include '升级经验.data.php';
分成多文件保存,用哪个读哪个,避免大量声明
数据更新时,改好mysql里的数据,将缓存文件删掉重新运行程序生成即可
#9
你的意思相当于还是说,数据最终存在PHP里,只不过是生成的。。和放在EXCEL里生成PHP静态数据文件差不多啊
#10
个人感觉可以存数据库和redis里,
一般获取从redis来,如果redis没有值就去mysql获取
mysql的值通过php设置
只要维护好mysql和redis的同步(比如mysql重启就更新redis,mysql更新也更新redis)
这样又好维护,也能直接放内存中,维护和访问速度都没问题
同二楼,不推荐放php代码中,这是最不好的办法。。。如果你真的要,那就在一个公共文件中define...
楼主自己取舍
一般获取从redis来,如果redis没有值就去mysql获取
mysql的值通过php设置
只要维护好mysql和redis的同步(比如mysql重启就更新redis,mysql更新也更新redis)
这样又好维护,也能直接放内存中,维护和访问速度都没问题
同二楼,不推荐放php代码中,这是最不好的办法。。。如果你真的要,那就在一个公共文件中define...
楼主自己取舍
#11
erlang...
#12
呃。那请问如果存在PHP里的劣势主要是不好维护还是效率低呢?
#13
自己再顶一下。。