1

我试图弄清楚我应该如何为我的网站上的用户信息构建我的数据库结构(表)。我将存储的信息类型(无论如何此时)是:

  • 关于我
  • 生日(1970 年 1 月 1 日)
  • 性别(男/女)
  • 感兴趣的:(男性,女性,两者)
  • 关系状态:(单身、恋爱、订婚、已婚)
  • 网站:(mywebsite.com)
  • 来自:(加利福尼亚州库比蒂诺)

所以这是我现在要存储的信息类型。我的问题基本上是,我应该只有一张桌子吗?还是根据信息的内容来拆分信息会更好(显然,我的用户有一个唯一的 ID,它将与每个信息表一起出现)。所以我不确定我是否应该有一个专门用于生日的表格,其中包含以下列:userID、Month、Day、Year;要不然是啥。

4

2 回答 2

4

如果用户只需要存储一个属性的一条信息,那么您不需要单独的表。例如,一个用户只有一个生日。您需要一个单独的Birthdays表的唯一原因是如果您想为同一个用户标识存储多个生日。您列出的每个属性看起来都可以放在一张Users表中。

至于分成Birthdays几列:userID、Month、Day、Year,这完全取决于您将如何使用这些信息。您是否只需要知道用户生日的月份、日期或年份?如果这是一个常见的需求,您可能希望单独存储它们。通常不是,因此您可能只想将其存储为单个 Date 值。

注意:您可以通过查看Data Explorer查看 Stack Overflow 使用的架构。他们在一个用户表中保留了类似的数据集合。

于 2012-11-06T00:22:34.680 回答
1

在绝大多数情况下,我已经看到您要求的内容存储在一张表中 - 通常是userusers.

也许还包括许多其他元素:

  • 用户 ID(唯一)
  • 注册日期
  • 状态(活动/过期/禁止)
  • 用户哈希
  • 加上其他各种...

老实说 - 这取决于你正在构建什么以及它是如何构建的,但我的建议是从简单开始。

关于生日,只需将日期存储为 mysql 日期格式:

YYYY-MM-DD

这样,您可以使用 mysql 函数以多种方式对其进行操作。

希望这可以帮助。

于 2012-11-06T00:23:38.213 回答