首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mySQL数据库结构

问mySQL数据库结构
EN

Stack Overflow用户
提问于 2010-12-19 13:37:53
回答 2查看 135关注 0票数 0

我使用mysql已经有一段时间了,但从来没有做过任何复杂的事情。我正在做一个新的项目,需要在正确的方向上推动一点。比方说,我想要一张放猫的桌子。假设我想存储猫的名字和猫喜欢的食物。然后假设我想查询所有喜欢鱼、牛奶和老鼠的猫。我不想让“猫”表中的“鱼”、“奶”、“鼠”行可以是yes、no、1或0。我想我想要的是有一个单独的'foods‘表,然后使用join语句。但我不知道从哪里开始找,也不知道要找什么。考虑这一点的另一种方式是,如果你有一个博客,并希望帖子有类别。如何存储哪些帖子属于哪些类别,以及如何按类别查询帖子?

我意识到这可能是一个非常基本的问题,如果能有一个教程的链接来解释实现这一点所需的结构/命令,我会很高兴!非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2010-12-19 13:49:02

你想得很对。您需要两张桌子,一张“猫”桌和一张“食物”桌。您的食品表将具有某种主键,您的Cats表将作为外键引用该主键。您可以执行如下查询:

代码语言:javascript
复制
SELECT * FROM cats WHERE food_id = 5

为了理解JOIN在SQL中是如何工作的,我将查看here。

票数 1
EN

Stack Overflow用户

发布于 2010-12-19 13:49:22

我只能提供rails的例子。

在rails中

我有一个完美的世界,每个帖子都有一个类别

您将看到SQL如下所示

代码语言:javascript
复制
Posts.find_all_by_category_id(Category.find_by_topic("sports").id)
# May generate 
SELECT ALL from `post`.* WHERE `category_id` = `7` 


class Category < ActiveRecord::Base
    has_many => :posts
end

class Post < ActiveRecord::Base
    belong_to => :categories
end

在现实世界中,这是一个多对多的关系

代码语言:javascript
复制
   class Category < ActiveRecord::Base
       has_and_belongs_to_many => :posts
   end

   class Post < ActiveRecord::Base
       has_and_belongs_to_many => :categories
   end

rails会在你背后为你做多对多的连接表

然后你可以去Category.find_by_topic(" sports ").posts来恢复所有带有体育类别的帖子。

我不知道我头顶上生成的详细的mySQL是如何做多对多关系的。

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

https://stackoverflow.com/questions/4481781

复制
相关文章

相似问题

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