【发布时间】:2019-11-05 16:59:40
【问题描述】:
我有三张桌子,我只是在寻找一种方法来完成这项工作。
tbl_campaigns 具有“id”和“campaign”列。这个相当简单,它只是带有自动递增 ID 号的广告系列名称,因此它们具有唯一的 ID。
tbl_users 有一个“id”列,因此每个用户都有一个唯一的 ID 号,这是标准的东西。
tbl_permissions 在创建新用户时创建一个新行。这意味着它的“id”列具有与“tbl_users”中用户的 ID 匹配的唯一 ID 值。每次创建新的时候,这些列都被命名为匹配一个活动的 ID 值,例如,列“campaign_1”与 ID 为 1 的 'tbl_campaigns' 中的活动相关。想法是这个表数据用 1 或 0 填充。
如果 ID 为 1 的行的“campaign_1”列的编号为 1,则 ID 为 1 的用户被批准参加活动表中 ID 为 1 的活动。如果它是 0,那么他们不被批准。相同的逻辑适用于“campaign_2”、“campaign_3”等列。
无论如何,我遇到的问题是在前端显示此信息,因为我只希望用户能够在下拉列表中看到他们获准运行的广告系列。当用户登录时,它会将他们的用户 ID 存储在会话中,我不确定是否有办法使用这种方法。
有没有办法解决这个问题?请注意,我已经在程序 PHP 中完成了这项工作,因为我还处于早期阶段,所以如果有人有这些方面的解决方案,我将不胜感激。对不起,如果它有点混乱。我知道这有点笨拙,但我只想让它先工作。
【问题讨论】:
-
样本数据、所需结果和适当的数据库标签都会有所帮助。
-
“例如,“campaign_1”列与 'tbl_campaigns' 中 ID 为 1 的广告系列相关” 不要这样做。作为应用日常操作的一部分(即插入新的广告系列行时),您永远不必修改架构(即添加新列)。而是创建一个join table。跨度>
-
干杯亚历克斯,已编辑,因此不必再这样做了。我确实认为这是一种不好的做法,但不完全确定是否可以绕过它。
标签: php sql procedural