mysql - 构建数据库

标签 mysql sql database database-design database-schema

我在设置数据库时遇到一些问题。没有任何编码问题,但无法弄清楚如何构建它。

这个想法是人们将在网站上注册,并且使用 SQL,他们将位于表 USER 中。 但用户也可以收集手工制品,以便其他用户可以看到并评价他们的手工制品,并看到很多其他信息。那么除了为每个用户准备一个表之外,有没有更简单的方法呢?

该产品只能“绑定(bind)”到一个用户。任何用户都无法拥有相同的产品。

比如 Facebook 是如何运作的?我不认为每个用户都有一张用于存储使用信息的表吗?产品可以像图片一样。那么每张专辑都没有表格吗?对吗?

最佳答案

根据关系数据库模型,为每个用户拥有单独的表是无法容忍的,也是完全错误的!

您想要实现的目标实际上是数据库结构化中的一个非常基本的事情,请尝试阅读该主题中的一些教程。

通过表 USERPRODUCT 并正确设置关键字段,您将能够获得正确的表单。

用户:user_id,<<用户详细信息>>

产品:product_id、user_id、排名、<<其他产品详细信息>>

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

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

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

相关文章:

mysql - 如何向 mySQL 中已存在的表添加约束?

java - NetBeans 和 MySQL 的问题(授予访问权限)

mysql - mysql 一次查询删除旧记录并插入新记录

java - 在没有代码生成的情况下使用jOOQ生成SQL时如何使用jOOQ转换器?

mysql - MySQL 为什么要使用临时表来删除主键?

mysql - 计算每天的中值

php - 我如何使用php计算特定字段的多行mysql

mysql - Sequelize 查询显示多对多关系中的附加数据

sql - Access 2010 中的链接查询到受密码保护的数据库。

python - Django 按规则自动递增 IntegerField