我正在尝试确定构建用户表的最佳方法。用户可以访问多个“品牌”,每个品牌都有多个表格。也就是说,如果用户X想要查看品牌Y的数据,则数据库包含说明我需要调用哪些表的信息。
例如,用户X可以访问Brand1和Brand2。 Brand1在table1,table2和table3中有其数据。 Brand2的数据见表4,表5,表6。用户选择Brand2,应用程序调用以查明table4,table5,table6应该被使用,直到用户选择不同的品牌。
知道单个品牌可能拥有多个可以访问数据的用户,最好的结构方法是什么?
我是否需要的不仅仅是用户表,如果是这样,还有什么以及如何连接到用户表?
感谢。
答案 0 :(得分:1)
像Mark Baker指出的那样,你可以有一个用户表,一个品牌表和一个user_brand表。
用户表 - 存储user_id(和其他用户数据) 品牌表 - 存储brand_id(和其他品牌数据)
您已经定义了用户和品牌之间的关系。它的M:N(多对多),这意味着:
表user_brand解决了访问问题。
user_brand表 - 存储user_id和brand_id(以及更好地描述此关系的可选数据)。
这是关于sql语法的example(强制执行外键约束)。
答案 1 :(得分:-2)
您可以使用GRANT
查询,这样用户只能访问数据库中的2个表,然后在应用程序中,您可以编写它以选择1个表,直到用户更改品牌。品牌本身就是表,不是吗?
在PHP代码中,代码和查询应如下所示:
<?php
$db = new mysqli('hostname', 'db_username', 'db_password', 'db_name');
$brand = $_SESSION['brandName']; // use this if you use sessions to cache the data
$db->query("SELECT * from `$brand`");