如何在php + database

时间:2016-03-10 17:46:03

标签: php mysql laravel

一段时间以来,我正在考虑如何根据数据库条目在php中动态加载代码。我试图找一些相关的东西,但是找不到任何可以彻底回答我问题的东西。我正在使用Laravel - 不确定这可能是解决这一特定问题的主题。

请参阅以下代码中的“示例数据”,其中我试图快速概述数据库结构。所以对于一个游戏,我们可以说我们的角色可以在一个位置。任何位置基本上看起来都一样。你有一个表格在这个位置写一条消息 - 没什么特别的。但是可能会有一些例外。例如,您可能有一个位置,它实现了一些更多的逻辑,例如列出所有在线字符(+显示其当前位置的名称)。或者某个位置可能会显示其他一些其他内容。

这是我到目前为止所提出的,但似乎都不是最佳的:

  • 为不同类型的位置创建不同的表(实际上这对我来说非常糟糕)。
  • 创建另一个表,f.e。 modules,与位置表有多对多的关系。然后,modules表将具有一个位置的条目,该位置告诉应用程序“执行”的内容。 Fe,一个位置可能包含条目thread,用于发布消息list,用于显示在线角色及其位置的概述trader,以允许某些游戏机制等。

对我而言,第二种选择似乎是实现我想要实现的目标的正确方式。我会有代表这些模块的类,函数等。但它似乎也很难硬码。意思是,对于后面的代码中的一个,我将不得不区分我将来可能或不想要改变的值,这将需要大量的重构。因为我必须区分字符串,这种设计很容易出现拼写错误,而不是......

字符:

id | location_id (nullable) | name
---------------------------------
 1 |                      1 | Test

位置:

id | name
----------------
 1 | Location #1
 2 | Online Characters

对于上面提到的版本,我会添加:

模块:

id | name
---------
 1 | thread
 2 | list
 3 | trader

location_modules:

location_id | modules_id
------------------------
          1 |          1
          1 |          3
          2 |          2

0 个答案:

没有答案