怎样看待 Realm 这个移动数据库

怎样看待 Realm 这个移动数据库,第1张

说一下个人在开发中遇到的一些小坑...

1.RealmObject自带线程保护功能,只能在创建它的线程中访问,在子线程中不能访问。

也就是说,如果你在主线程中new了一个RealmObject对象 user,那么在子线程中是访问不了user对象的。

要想在子线程中访问,必须先将user存入Ream中,然后在子线程中query出来。

2.如果Realm关闭,所有查询得到的RealmObject都不能使用了。

如果想在子线程中去查询数据,然后在主线程中使用是无法做到的。所以Realm提供的异步查询就很重要了...

3.如果想在Realm.close()之后继续 *** 作查询得到的对象,只能复制一份数据传出来。

为防止Realm忘记关闭,个人喜欢将Realm的开启和关闭封装在一个函数中。

但是realm Colse掉之后,query得到对象就不能访问了,所以只能复制一份数据传出来。

这个比较坑,Realm开发者是为了它的一个特色功能Auto-Update,即自动更新查询到的数据,

特意让查询得到的数据与数据库中的数据保持了同步,所以Realm一关,外面的数据也用不了。

而且,这个Auto-update暂时还无法关闭,stackOverFlow上有说以后可能会提供关闭这个功能的方法。

这个东西整理了很久了,结构大同小异,部分汉化说明也有前人做过,不能算原创,只能说站在巨人的肩膀上,貌似3.13更新了一些地方,但是国外还没有对于跟新的部分进行说明,同时也废除了一些结构设置,附上部分作废的结构说明,以备大家使用。其次是GM把我的一个没有满80的小号删掉了,辛苦积攒的1W金币一下子就没有了,分个装备也挺费劲,时间也不多,还是搞点研究跟大家分享算了,一切过眼云烟……

MANGOS数据库表格含义

角色数据库:characters

==================================================

account_data 特征帐户

arena_team 竞技场队伍信息

arena_team_member竞技场队伍成员

arena_team_stats 竞技点数统计

auctionhouse 拍卖行(参数--观看时所对应)

battleground_template战场竞技场基本配置

bugreport给GM发信所对应的数据

character_achievement

character_achievement_progress

character_action 创建的人物所会的技能对应playercreateinfo_action(仅出生)

character_aura 角色的 BUF 效果

character_homebind 创建人物的炉石回城所绑定的地点(或出生地点)

character_instance 角色玩家副本信息

character_inventory 创建人物身上和背包内的道具

character_kill 角色的荣誉信息(杀或被杀,有无荣誉等)(TYPE=1 获得,2=损失)

character_pet创建人物的宠物信息

character_pet_declinedname

character_queststatus创建人物的任务信息

character_reputation 创建人物的阵营声望

character_social 好友列表

character_spell 人物的技能列表(仅会魔法的人才会出现ID)

character_spell_cooldown 人物技能的冷却时间

character_ticket 角色传送点信息

character_tutorial 角色补习,讲解信息(例如游戏里的帮助内容和上线的一些提示信息)

character创建的人物资料对应playercreateinfo

corpse 角色死亡后尸体相关的信息(这里有对应记录时角色即为死亡状态,包括尸体对应的墓地信息等,官服此表每星期清一次)

group_instance

group_member 队伍成员(登陆132错误多为不同阵营间组队造成,清除玩家的队伍就可以了)

groups 组队,团队信息

guild工会信息

guild_bank_eventlog 工会银行事件记录

guild_bank_item 工会银行的物品

guild_bank_right 工会银行使用等级

guild_bank_tab 工会银行的存放槽

guild_eventlog 工会事件记录

guild_member 工会成员

guild_rank 工会的阶级划分记录信息

instance 副本记录(临时表)记录玩家开启的副本并对重置时间进行计时

instance_templateFB信息(包括地图、要求进入的等级、人数上限、重置时间)

item_enchantment_template道具的魔法模版

item_instance物品信息

instance_reset 重新设定信息

item_template道具及任务道具的详细信息

item_loot_template 道具掉落表

item_text道具说明(item_template相关字段)

mail 邮件系统

mail_items 邮寄道具

pet_aura 宠物光环模型

pet_spell宠物学的技能

pet_spell_cooldown 宠物技能的冷却时间

petition 已被召唤的宠物,对应角色GUID

petition_sign宠物归属哪个角色标志

saved_variables 不定时保存信息

主数据库:mangos

=============================================

achievement_reward 添加巫妖王的奖励成就

areatrigger_involvedrelation传送(区域触发)_包含的任务关系

areatrigger_scripts 区域触发脚本

areatrigger_tavern 进传送门id指向areatrigger_teleport----OK触发

areatrigger_teleport

areatrigger_template传送区域的具体坐标(与travern所对应)

battleground_template 战场竞技场基本配置

battlemaster_entry 战场管理NPC分管的战场(NPC的entry对应战场的ID)

command GM命令

creature地图刷怪配置

creature_addon 生物刷怪补充(即根据GUID的不同一个生物通过此表可定义为不同属性的)

creature_equip_template 生物身上的装备模板库(creature_template调用这里的内容,如用什么武器和盾等)

creature_involvedrelation NPC或怪物(特殊类)参与的任务关系,所涉及的关系

creature_loot_template 生物的掉率

creature_model_info 生物模型信息库(creature_template调用这里的内容)

creature_movement 怪物或NPC移动的关系,活动范围

creature_onkill_reputation 生物被杀声誉配置

creature_questrelation 怪物触发的任务关系

creature_respawn生物再生(临时表)针对creature里的生物时间被杀死后进行记录。

creature_template 怪物或NPC的具体信息如HP,SP等

creature_template_addon 怪物或NPC的具体信息补充(即相同的生物可以设置不同的属性)

db_script_string数据库脚本处理

db_version 数据库版本说明

disenchant_loot_template附魔合成出产物品表

event_scripts 事件脚本

exploration_basexp 等级和基本经验配置

fishing_loot_template 钓鱼出的爆率配置

game_event 游戏事件,定时触发

game_event_creature 游戏事件由生物触发

game_event_creature_quest 由生物来处理的游戏事件内的任务和问题

game_event_gameobject 游戏事件由对象触发

game_event_model_equip 游戏事件中发重变动的模型装备配置

game_event_pool 游戏共用事件

game_graveyard_zone 地图区域连接墓地配置

game_tele 游戏不同区域的广播视频信息

game_weather天气系统(可以为不同的区域配置不同的天气变化)

gameobject 世界刷对象配置物品信息(地上的箱子,草,矿)仅刷新点,时间,位置

gameobject_involvedrelation 对象参与的任务关系,所涉及的关系

gameobject_loot_template对象爆率,地上的箱子、矿石、花草

gameobject_questrelation对象触发的任务关系

gameobject_respawn 对象再生(临时表)(如gameobject刷出的对象箱子等在被打开后这里就开始计时)

gameobject_scripts 对象脚本

gameobject_template 对象具体信息配置,如草,矿等

instance_template 副本配置(等级、团队限止和副本AI脚本控制等)

item_enchantment_template 附魔产品配置

item_loot_template 包里的箱子之类爆率

item_template 道具及任务物品的详细信息

locales_achievement_reward 完成给予的奖励

locales_creature生物名七国语言支持

locales_gameobject 世界对象七国语言支持

locales_item物品名称七国语言支持

locales_npc_option NPC的选择

locales_npc_textNPC对话七国语言支持

locales_page_text 其它对话七国语言支持

locales_points_of_interest

locales_quest 任务对话七国语言支持

mangos_string 系统提示信息自定义表

milling_loot_template 最小掉落模版

npc_gossip NPC对话索引,没事说的话,如有些副本人物一进入就可以看到BOSS遇到你说的话

npc_gossip_textid 话的内容对应NPC_gossip

npc_option 共50条记录,NPC的类型

npc_text跟NPC说话的内容,不同于任务内容,此内容大多是通过AI实现调用

npc_trainer 训练师所对应的内容(学习技能要求的等级, 金钱, 前置技能等)

npc_vendor 卖东西的NPC所对应的商品配置

page_text 对话提示内容不同于任务

pet_levelstats 宠物等级初始定义

pet_name_generation 宠物名称替换定义

petcreateinfo_spell 宠物法术信息

pickpocketing_loot_template 盗贼偷窃爆率(可以得到的物品配置)

player_classlevelstats 人物升级基础加成倍(血、魔法……)

player_levelstats 出生等级

player_xp_for_level 玩家升级所需得升级经验

playercreateinfo人物出生的信息,根据种族配置出生时所在的地图坐标等

playercreateinfo_action 出生时快捷键的技能图标

playercreateinfo_item 出生时身上道具

points_of_interest

pool_creature 所有池塘中游戏事件的情况

pool_gameobject 生物的GUID

pool_pool

pool_template 池塘生物模版

prospecting_loot_template 采矿爆率

quest_end_scripts 任务结束脚本(例如完成风剑任务召唤桑德兰王子就是调用这里)

quest_mail_loot_template

quest_start_scripts 任务开始脚本(按任务时触发的剧情配置)

quest_template 任务的详细信息(可接范围等)对应QUESTID可能跟object_involvedrelation有关系

reference_loot_template 掉落参考模版

reserved_name 保留名称为不可被其它用户所注册

skill_discovery_template技能规定必要条件要求模板(处理某些技能,规定发现的机会大小)

skill_extra_item_template 道具额外奖励技能模版

skill_fishing_base_level钓鱼基础的登记

skinning_loot_template 剥皮爆率

spell_affect法术触发技能或效果处理

spell_area 法术范围

spell_chain 法术的链接处理(设置某一法术的前置技能和顺序等)

spell_elixir炼金技能

spell_learn_spell 可以学习的法术

spell_proc_event法术的过程事件

spell_script_target

spell_scripts 法术脚本

spell_target_position 远程传送,产生法术结果通过SPELL_EFFECT_TELEPORT_UNITS协调

spell_threat给予或者取消所有法术拥有的威胁值

transports 运输配置

登录控制数据库:realmd

=============================================================

account 账号具体ID等信息

account_banned被禁止的账号

autobroadcast 自动公告表

creature 地图刷怪配置

db_version登录控制数据库的版本和所支持客户端的标识

ip_banned 被禁止的IP

localization 语言环境设置

realmcharacters 登录器角色所登录的服务器主数据库信息(即为一个登录数据库对应多个主控制器时分配标识)

realmd_db_version

realmlist 登录控制器列表(设置对外开放的登录IP和端口号等)

uptimeSERVER正常运行的时间

更新废弃

spell_bonus_data法术加成数据库

spell_disabled 禁用技能

spell_pet_auras 宠物技能模版

spell_script_target 法术脚本目标(技能图腾,type=0对应世界对象ID或type=1对应生物ID,或type=2为必须死亡的生物(被人或NPC杀死的))

playercreateinfo_reputation 出生时各个派别的声望

playercreateinfo_skill 出生时所会的技能

playercreateinfo_spell 出生时所会的法术(同上,数据表内容很像,但有出入,法术和技能是两个不同的概念)

player_levelstats 初始人物等级配置定义

pet_levelstats 宠物的等级信息(规定的几个宠物 如 SS 的小鬼 虚空等)

pet_name_generation 宠物名称的产生,对应与规定的宠物

petcreateinfo_spell creature表中能作为宠物的怪物技能列表

spell_learn_skill 可以学习的技能

spell_proc_event法术的过程事件

spell_teleport 法术传送(和areatrigger_teleport传送门基本一样)

spell_threat法术的威胁(仇恨)

button_scripts 鼠标右键按钮触发的脚本配置(如开箱子或开门等而触发剧情控制)

uptime 系统运行时间记录

taxi_node WOW的飞机系统(具体不明)

taxi_path 飞到哪的价格什么的吧(不明)

taxi_pathnode 飞机的完整表(对应taxi_NODE taxi_path)

game_talent 游戏的天赋系统

game_graveyard 人物死亡后所回到的墓地(复活需要对应game_corpse表)

game_spell   魔法(参数有可以创造什么,比如FS做水)

gameobject_grid 可以拿取的有效距离(不明)

item_trainer传送宝石技能师

item_vendor 传送宝石商店

npc_SpiritHealer灵魂医者表

petcreateinfo_spell 宠物法术初始定义

zone_coordinate 地区id,地区名字缩写,例: Orgrimmar =>Orgi

首先,的删除数据库某一列的值分几种情况:

不删除字段,只更新其中的内容

在数据库中其实叫做更新(update)

语句如下:

update 表 set 字段=null

2、删除字段

alter table 表 drop column 字段


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6772679.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存