我正在创建一个laravel应用程序来跟踪游戏中的战役。我正在努力弄清的数据库结构情况涉及以下表格:
广告系列表为空。 角色表中填充了游戏中的角色数据。 物品表中会填充游戏中的物品数据。
Character和Item表都包含游戏本身的数据,不应填充用户数据。
用户可以创建一个新的活动,这将在“活动”表中创建一个条目。 然后,用户可以选择要在广告系列中使用的字符。我可以使用campaign_character链接表创建这种关系。
问题涉及物品。可以购买商品,这时需要将其添加到当前广告系列中。我可以为此使用一个campaign_items链接表,但也可以选择使用广告系列中的角色来装备物品。我不确定如何处理这种关系。
我无法创建character_item链接表,因为关系不是直接在角色与物品之间,而是在活动中的角色与活动中的物品之间。
我目前的想法是制作一个campaign_character链接表,一个campaign_item链接表和一个campaign_character_campaign_item链接表,但是这种情况会出现很多次(不仅与字符和项目有关,例如,字符可以在项目后添加附件)并且我觉得这只会导致大量的表格和复杂的关系。
有没有更好的方法来解决这个问题?这是正确的方法吗?
谢谢您的指导
答案 0 :(得分:0)
这是一个建议
除了3个主表以外,您创建的链接表为
campaign_character
campaign_item
在您的campaign_item
中创建一个称为equipped_by
的可空列,并存储character_id
。
如果此列中有一个character_id,则表示该item_id由该字符装备,如果该null具有未附加到特定字符的项目,则为
对于附件,请创建一个链接表item_attachment
,以仅保存项目和附件之间的链接。
由于character
表中已经建立了item
和campaign_item
之间的连接,因此{{1}可以派生attachment
和character
之间的链接。 }}和campaign_item
表。
请告诉我这是否有帮助