Mysql 构建数据库

Mysql 构建数据库,mysql,sql,database,database-design,database-schema,Mysql,Sql,Database,Database Design,Database Schema,我在设置upp数据库时遇到一些问题。没有任何编码问题,但不知道如何构造它 这个想法是人们将在网站上注册,使用SQL他们将在用户表中。 但是用户也可以收集手工产品,这样其他用户就可以看到和评价他们的手工产品,并看到许多其他信息。因此,没有为每个用户提供一个表,有没有更简单的方法 产品应仅“绑定”到一个用户。没有用户能够拥有相同的产品 比如facebook是如何工作的?我不认为每一个用户都有一个表来提供关于使用的信息?产品可能像一幅画。所以每张专辑都没有桌子?对吗?根据关系数据库模型,为每个用户提供

我在设置upp数据库时遇到一些问题。没有任何编码问题,但不知道如何构造它

这个想法是人们将在网站上注册,使用SQL他们将在用户表中。 但是用户也可以收集手工产品,这样其他用户就可以看到和评价他们的手工产品,并看到许多其他信息。因此,没有为每个用户提供一个表,有没有更简单的方法

产品应仅“绑定”到一个用户。没有用户能够拥有相同的产品


比如facebook是如何工作的?我不认为每一个用户都有一个表来提供关于使用的信息?产品可能像一幅画。所以每张专辑都没有桌子?对吗?

根据关系数据库模型,为每个用户提供单独的表是不可容忍的,也是完全错误的

您想要实现的目标实际上是DB结构化中的一个非常基本的东西,请尝试阅读该主题中的一些教程

使用表
用户
产品
并正确设置关键字段,您将能够获得正确的表单

用户:用户id,>

产品:产品id、用户id、排名>

因此,通过下面的查询,您将能够获得用户的所有产品

SELECT * 
FROM db.user u 
(LEFT) JOIN db.product p
ON u.user_id = p.user_id

通常的SQL方法是为用户创建一个表,为产品创建一个表。products表应该有一行“user”,其中包含用户id(或其他标识用户的内容)。您可能希望为每个用户分配一个ID(例如autoincrement int)并使用它

然后,您可以选择给定用户的所有产品:

SELECT * FROM products WHERE user = 723;
或者,您可能希望查找制作产品的用户的姓名:

SELECT name FROM users WHERE rowid = (SELECT user FROM products WHERE product_name = 'Kitchen Chair');

顺便说一下,在SQL中,我总是使用小写的表和行名称。

谢谢!我想我现在明白了。但我不知道键和字段是如何工作的,但我会检查它!我也这么做了,但为了清楚起见,我还是用大写字母写了出来。但是,嘿,谢谢!我想我现在明白该怎么办了!