根据启用或禁用的多个模块状态,页面可以访问用户

时间:2018-05-05 14:21:30

标签: php sql

我有一个场景,我有一个页面表,并且该页面基于多个模块启用或禁用。一个页面可以依赖于多个模块,而一个模块依赖于另一个模块。如果禁用其中的任何模块,则将禁用该页面。此外,如果页面本身被禁用,它将不会带来记录。我在模块表和页表中都有一个状态字段,显示它是否已启用。为此我创建了一个中间表,我存储依赖项。但我没有找到任何方式在SQL中如何做到这一点。如果您能为我提供更好的解决方案,请参阅下面的sql表。

1)文件表

file_id|  file_name           |   file_title         |display_in  |dependent_on
    1  |user_configuration.php|  User Configuration  |3             | 4

2)文件依赖关系(中间表)

id |  module_id | file_id
1  |  3         |   1     

3)模块表

module_id | mudule_name           |   status
3         | Configuration module  |     1
4         | Customers module       |    0

1 个答案:

答案 0 :(得分:1)

  $qry =  mysql_query("SELECT * FROM files f 
    LEFT JOIN file_dependencies fd on fd.file_id = f.file_id
    LEFT JOIN modules m on m.module_id = fd.module_id where fd.module_id = '3'");
  while($row = mysql_fetch_array($qry)){
    if($row['display_in'] && $row['dependent_on']){
      // write your own custom code
    }
  }

您需要使用表中的联接并检查依赖关系并在php代码中显示