我的问题是关于特定情况以及我应该采取什么方法以使松散耦合和开放/封闭原则成为最佳方法。我将详细解释我的情况,以便您深入了解我所面临的问题。抱歉,这将是很长的文字。真的很抱歉还是谢谢你们。
因此,我正在创建一个网站。在该网站上,一种类型的用户可以要求提供与运输有关的任何类型的服务。 (他可能会要求他需要将货物从一个地方转移到另一个地方,他可能需要为客人提供出色的汽车服务,他可能需要建筑运输,他可能需要游览的运输,所以所有与运输有关的事物) 。另一方面,有一种类型的用户可以享受所有这些服务(他们有卡车和司机可以去,拿起客户的货物并将其移动到某个地方,他们有工程车,他们有运输工具游览等等)。将有不同类型的用户(管理员,客户端,服务提供者,发行人,银行,驱动程序)。我已经提到了两种类型的用户(客户端和service_providers)。
所以要开始创建这样一个复杂的网站,这就是我的决定。管理员是添加传输类型的管理员。然后,管理员还添加了服务(该服务可能具有子代子类型)。假设管理员想添加一项新服务-货物运输。然后,他还想添加一项新服务-商务舱卡车。考虑那些服务需要具有不同种类的列。因此,我们有两项服务。现在,想象我能做什么。我可以以仅需要两个表的方式构造mysql表,即使在网站上可能有15种不同的服务。
赞。这是一种动态方式。因此,对于每一项服务,我都不必以开发人员的身份来为每一项服务添加新表。可能发生的情况是,当管理员添加新服务时,他指定了名称,该名称将转到图片中指定的第一个表。然后,如果他希望将此服务作为分支,则他去添加该服务的列(当客户转到该服务页面并需要请求特定的业务类别或货物移动时,将需要这些列)。想象一下,如果客户要进行货物运输服务,他必须填写表格(货物重量,货物初始地址等),因此这些属性或列应由后端的管理员添加。这可能是可行的,的确是这样。但是现在想象一下,当一个用户(客户类型)访问网站并选择货运服务时,我要做的就是使用该ID,我进行查询并从service_types和service_type_columns中获取结果并生成视图。但是,当我展望这个项目的未来时,它可能会变得更加复杂,并且我不知道这种方法(在前端生成动态mysql和动态视图就足够了)。
我认为我已经解释了这种情况,也许没有我打算的那么清楚,但是您明白了。
我的问题是:我应该采用这种动态方法吗(动态mysql-这样,对于服务,我不要转到mysql并为每个新服务创建新表和不同列,并且还要在前端动态生成视图)还是应该为每个服务创建一个新视图,并为每个服务添加新表?我想要做的是让管理员从后端创建新服务,并且该新服务将开始为所有用户类型工作,而完全不会受到我的干扰。你怎么看?