mysql - 如何最好地为一个用户或 ID 允许多个类别?

标签 mysql sql multiple-columns

我是 SQL 新手,但我正在尝试为目录类型数据库创建表。这个想法是,有些公司(公司表)在一个或多个类别中运营 - 例如包,鞋,皮带。我现在有一个类别表,其中包含大约 55 个类别的列表 - 我想将其保留为 future 添加的新类别。

我的表格如下所示:ID、Company_ID、类别 1( bool 值)、类别 2( bool 值)、类别 3...等等。

我的做法正确吗?还是有更好的方法?

这个想法是公司将能够登录,从中它将知道他们的 ID,他们将能够选中他们所操作的类别的选择并保存。理想情况下,我希望能够有一些 PHP 来自动显示表单中的复选框,而不是对其进行硬编码。稍后我希望能够从搜索或链接中选择 X 类别设置为 1 的公司。

最佳答案

这是一个多对多关系的情况。

您必须使用第三个表来表示关系,因此您有以下三个表:

Company (id, name , ...)
Category (id, name, ...)
Company_Category (company_id, category_id)

其中 company_idCompany.id 的外键,category_idCategory.id 的外键>.

希望这有帮助。

关于mysql - 如何最好地为一个用户或 ID 允许多个类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28174356/

相关文章:

php - 在 For 循环内爆

php - Codeigniter 2 多重连接和where语句

mysql - 选择具有最小值的多个列

php - PDO和MySQL : Subquery using dynamic time? 通过避免while循环来解决使用Join的方法?

r - 按顺序重命名 100 多个具有特殊名称的列

css - 根据屏幕大小使列从 6 变为 4 再变为 2

php - 如何将时间戳月份与 PHP 中 Spinner 中选定的月份进行比较

php - 使用 PDO 插入。我应该使用 try...catch 吗?

MySQL,在单个查询中将一项与多项结合起来

python - 通过添加列组来创建新列