首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL链接表;一些最终问题

MySQL链接表;一些最终问题
EN

Stack Overflow用户
提问于 2010-01-20 11:57:37
回答 1查看 202关注 0票数 2

首先,我要感谢所有帮助我理解规范化和如何建立我的数据库的各位。

现在,我还有一些最后的问题..。

表的链接实际上是如何工作的?

假设你有三张桌子:

代码语言:javascript
复制
CATEGORY TABLE:
cat_id (PK) -> 1
cat_name -> cars

CATEGORY_OPTIONS TABLE:
cat_opt_id (FK) -> 1
cat_id (FK) -> 1
option_name -> year

CATEGORY_OPTIONS_VALUES TABLE:
cat_opt_val_id (PK) -> 1
cat_opt_id (FK) -> 1
value -> 1999

--基本上,值应该如下所示:

代码语言:javascript
复制
CATEGORY
(1, cars)
(2, MC)

CATEGORY_OPTIONS
(1, 1, year)
(2, 1, fuel)
(3, 2, type)

CATEGORY_OPTIONS_VALUES
(1, 1, 2010)
(2, 1, Petrol)
(3, 2, Cross)

这是正确的,因为我有上面的设置?

我如何搜索这些,逻辑是如何构成的?

我想我需要PHP查询的例子(SELECT等)

假设你想搜索一辆汽车-> year=2010,fuel=PETROL的查询怎么样?然后说你想找一辆车-> fuel=PETROL,year=anything

最后,我应该在这些字段中使用AutoIncrement吗?什么时候使用人工智能?

谢谢

PS:要了解更多信息,请看下面的Q:Can this MySQL db be improved or is it good as it is?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-20 12:16:30

您需要SQL联接。表链接是一种完全不相关的技术,与您试图实现的目标无关(有关详细信息,请参阅合并引擎上的MySQL文档)。一般情况:

代码语言:javascript
复制
SELECT f.name, b.value
FROM foo f
LEFT JOIN bar b ON b.foo_id = f.id
WHERE f.age > 10
HAVING b.value IS NOT NULL

为了理解联接是如何执行的,您必须了解数据库引擎是如何处理查询的--特别是“ON”、“WHERE”和“拥有”子句在不同阶段的重要性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2101102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档