我在设置数据库时遇到了一些麻烦。没有任何编码问题,但无法弄清楚如何构建它。
这个想法是人们将在网站上注册,并且使用 SQL,他们将在表 USER 中。但是用户也可以拥有一系列手工制品,这样其他用户就会看到和评价他们的手工制品,并看到很多其他信息。因此,除了为每个用户设置一个表之外,还有什么更简单的方法吗?
产品应该只与一个用户“绑定”。没有用户能够拥有相同的产品。
比如脸书是如何运作的?我不认为每个用户都有一张表来获取使用信息?产品可能就像一张图片。所以每张专辑都没有桌子?正确的?
我在设置数据库时遇到了一些麻烦。没有任何编码问题,但无法弄清楚如何构建它。
这个想法是人们将在网站上注册,并且使用 SQL,他们将在表 USER 中。但是用户也可以拥有一系列手工制品,这样其他用户就会看到和评价他们的手工制品,并看到很多其他信息。因此,除了为每个用户设置一个表之外,还有什么更简单的方法吗?
产品应该只与一个用户“绑定”。没有用户能够拥有相同的产品。
比如脸书是如何运作的?我不认为每个用户都有一张表来获取使用信息?产品可能就像一张图片。所以每张专辑都没有桌子?正确的?
根据关系数据库模型,为每个用户拥有单独的表是不能容忍的并且是完全错误的!
您想要实现的目标实际上是数据库结构中非常基本的事情,请尝试阅读该主题中的一些教程。
使用表格USER
并PRODUCT
正确设置关键字段,您将能够获得正确的表格。
USER: user_id, <<用户详情>>
PRODUCT:product_id、user_id、rank、<<其他产品详情>>
因此,通过下面的查询,您将能够获得用户的所有产品。
SELECT *
FROM db.user u
(LEFT) JOIN db.product p
ON u.user_id = p.user_id
通常的 SQL 方法是为用户创建一个表,为产品创建一个表。products 表应该有一行“用户”,其中包含用户 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 中的表和行使用小写名称。