php - MySQL数据库表设置

标签 php mysql sql database database-design

我想知道我是否以最有效的方式设置此数据库架构。 我正在尝试在我的网站上输出滑雪术语及其对每种产品的含义。我为此设置的表格:

产品

+----+--------+--------+-------------+
| id | brand  | name   | product_type|
+----+--------+--------+-------------+
|8000| burton | diode  | binding     |
+----+--------+--------+-------------+

术语产品

+----+--------+------------+
| id | att_id | product_id |
+----+--------+------------+
| 1  | 51     |  8000      |
| 2  | 52     |  8000      |
+----+--------+------------+

术语

+--------+-----------+--------+---------------------+
| att_id |    type   | key    | value               |
+--------+-----------+--------+---------------------+
|   52   | baseplate | EST    | details about EST   |
|   53   | baseplate | Hinge  | details about Hinge |
+--------+-----------+--------+---------------------+

然后我查询

SELECT products.ProductName, products.Brand, terminology.type, terminology.key, terminology.value
FROM products
JOIN terminology_products
ON terminology_products.product_id = products.ID
JOIN terminology
ON terminology_products.att_id = terminology.att_id
WHERE products.id = 8000

并获得我正在寻找的结果,但我觉得这可能是一种过于复杂的方法。有没有更简单的方法?感谢您的任何见解或帮助。

最佳答案

是的,这是正确的方法。这是常见的解决方案。

您的“terminology_products”表包含外键,它允许您在表之间建立“多对多”关系。

关于php - MySQL数据库表设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19124500/

相关文章:

sql - cfqueryparam 问题

c# - C#插入foxpro 6表的最佳方式

php - 从 url/超链接发布 Open Graph Story

php - .htaccess/php 来流式传输视频?

php - 全局转义变量

sql - 如何在 Oracle 中格式化和排序日期?

php - 实时识别爬虫 - PHP - 跟踪内存中的访问文件

Ubuntu 中的 MySQL 连接

数据库迁移后 MySQL 事件未运行

php - 上传sendfile文件作为附件并在php中下载该文件