我想弄清楚我应该如何在我的网站上为用户信息构建数据库结构(表格)。的信息,我会被存储(此时反正)的种类有:用户信息的推荐数据库结构
- 关于我
- 生日(一月,1,1970年)
- 性别(男/女)
- 感兴趣的方面(男,女,两个)
- 婚姻状况:(单,在一个关系,订婚,结婚)
- 网站:(mywebsite.com)
- 来源:(加州Cupertino)
所以这是我现在要存储的信息的类型。我的问题基本上是,我应该只有一张桌子吗?或者根据它是什么来分割信息会更好(我的用户有一个独特的ID,这显然会与每个信息表一起出现)。所以我不确定我是否应该专门为生日提供列:userID,Month,Day,Year;或者是什么。
我会避免把生日分成几部分,因为如果你只是想要“约会”,这是一个非常具体的反规范化和屁股疼痛。拆分*仅*如果存在证明*(证据确凿)的性能问题,可以通过这种方式解决,并且重要的是*需要*寻址。这将是“早期优化”以开始使用分割日期设计的经典错误。 – Bohemian
谢谢你的回答。以前,我只用了一张表来处理所有这类信息,而且我一直打算到现在为止继续这样做,但是我正处于为发布日期而开发我的网站的最后阶段,而且我正试图想出在未来允许数据灵活性的最佳方式。比如对于生日专栏部分,截至目前,我不知道我将如何使用这些信息,但我希望以尽可能最好的方式存储它,以便我可以以任何方式使用它未来。 –
@Bohemian我坚持这个例子,因为它是OP使用的那个。一个更好的例子可能是一个地址。有时候你需要在不同的领域中使用城市,州,邮编等,但有时地址只能被当作原子数据。这真的取决于它将如何使用。 –