【发布时间】:2011-09-22 18:46:52
【问题描述】:
假设一个类似约会网站的网络应用程序,其中每个配置文件都可以有一个或多个用户。例如,每个用户都有以下列:姓名、年龄、性别。
我认为数据库设计如下:
TABLE profile
=============================
| profile_id | name |
=============================
| 1 | Dynamic Duo |
-----------------------------
TABLE user
================================================
| user_id | profile_id | name | age | gender |
================================================
| 1 | 1 | Batman | 35 | Male |
------------------------------------------------
| 2 | 1 | Robin | 25 | Male |
------------------------------------------------
数据库设计好不好?我将如何查询以下内容:
- 查找用户的性别=男性的所有个人资料
- 查找用户性别为男性和女性的所有个人资料
- 查找用户性别为男性和女性且每个用户的年龄为 > 20 且
- 查找关联用户超过 2 个的所有个人资料
如果数据库设计不能支持这样的查询,那会是什么设计?
【问题讨论】:
-
那些“我将如何查询”的问题非常基础。在我看来,你可能已经在你的头上。 (这是一种观察,而不是批评。)
标签: mysql database database-design relational-database normalization