gpt4 book ai didi

mySQL数据库结构

转载 作者:太空宇宙 更新时间:2023-11-03 10:27:17 25 4
gpt4 key购买 nike

我使用 mysql 已经有一段时间了,但从来没有做过任何接近复杂的事情。我正在从事一个新项目,需要朝正确的方向插入。假设我想要一张可以存放猫的 table 。假设我想存储猫的名字和猫喜欢的食物。然后假设我想查询所有喜欢鱼、牛奶和老鼠的猫。我不想让“猫”表有“鱼”“牛奶”“老鼠”的行,可以是或否或 1 或 0。我想我正在寻找的是有一个单独的“食物”表,然后使用连接语句。但我不知道从哪里开始寻找或搜索什么。考虑这个的另一种方法是,如果您有一个博客,并且希望帖子有类别。我将如何存储哪些帖子属于哪些类别,以及如何按类别查询帖子?

我意识到这可能是一个非常基本的问题,即使是一个教程链接也会很高兴,该教程解释了解决这个问题所需的结构/命令!非常感谢!

最佳答案

<b>Table: cats</b>
id
name<br/><br/><b>Table: foods</b>
id
name<br/><br/><b>Table: cat_food</b>
cid (Cat ID)
fid (Food ID)<p></p>

<p><b>Query: Select cats that like fish</b>
SELECT
name
FROM
cats c
INNER JOIN
cat_food cf
ON
cf.fid = 2 -- Assuming food ID#2 is 'fish'<br/>
<b>Query: Select cats that like fish, milk, or mice</b>
SELECT
c.name
FROM
cats c
INNER JOIN
cat_food cf
ON
cf.fid IN (1, 2, 3)
GROUP BY
c.name
<br/><b>SCHEMA</b>
CREATE TABLE IF NOT EXISTS <code>cats</code> (
<code>id</code> int(10) unsigned NOT NULL AUTO_INCREMENT,
<code>name</code> varchar(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (<code>id</code>)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;</p>

<p>INSERT INTO <code>cats</code> (<code>id</code>, <code>name</code>) VALUES
(1, 'Sassy'),
(2, 'Tiger');</p>

<p>CREATE TABLE IF NOT EXISTS <code>cat_food</code> (
<code>cid</code> int(10) unsigned NOT NULL COMMENT 'Cat ID',
<code>fid</code> int(10) unsigned NOT NULL COMMENT 'Food ID',
UNIQUE KEY <code>cid_fid</code> (<code>cid</code>,<code>fid</code>),
KEY <code>fid</code> (<code>fid</code>)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;</p>

<p>INSERT INTO <code>cat_food</code> (<code>cid</code>, <code>fid</code>) VALUES
(1, 1),
(2, 2),
(1, 3);</p>

<p>CREATE TABLE IF NOT EXISTS <code>foods</code> (
<code>id</code> int(10) unsigned NOT NULL AUTO_INCREMENT,
<code>name</code> varchar(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (<code>id</code>)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;</p>

<p>INSERT INTO <code>foods</code> (<code>id</code>, <code>name</code>) VALUES
(1, 'Fish'),
(2, 'Milk'),
(3, 'Mice');</p>

<p>ALTER TABLE <code>cat_food</code>
ADD CONSTRAINT <code>cat_food_ibfk_2</code> FOREIGN KEY (<code>fid</code>) REFERENCES <code>foods</code> (<code>id</code>) ON DELETE CASCADE,
ADD CONSTRAINT <code>cat_food_ibfk_1</code> FOREIGN KEY (<code>cid</code>) REFERENCES <code>cats</code> (<code>id</code>) ON DELETE CASCADE;</p>

关于mySQL数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4481781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com