MySQL表设计结构用户首选项



我最近的任务是帮助建立一个约会网站的数据库。我对数据库的概念一点也不陌生,但我遇到了一个障碍,不知道如何继续。

注意,我试着寻找答案,但没有一个结果很清楚,这就是为什么我自己问这个问题。此外,我熟悉1对1、1对多和多对多的概念。

该网站的用户将在匹配中选择他们想要的内容,并提供自己的匹配信息。

每个用户都有8或9个属性。其中3个属性可以有多个值,我能描述它的最好方式是一组应该可搜索的复选框(例如,用户可以具有外向、关心他人和风趣的个性)。

从我搜索的内容来看,最受欢迎的答案是:

  1. 为一个表中的每个复选框指定一个字段
  2. 使用多对多关系,每个复选框都是表中的一条记录

而且,我应该存储他们要查找的内容,还是应该让它只是用户自己运行的查询?

如果我存储用户想要的内容,他们将针对相同的8到9个属性进行搜索,但所有属性都可能包含多个值(例如,你只能是一个性别,但你可能正在寻找任何性别的人)。

我希望能够在匹配中存储用户正在寻找的内容,这样就可以自动建议匹配,但我不知道如何以高效的格式创建这个结构,如果有的话。

但我不知道其中哪一个,或者我不知道的第三种解决方案,最适合网站设计。我最初以为我可以让每个属性都有多个值,一个BIT字段,每个位都是一个复选框,但后来我意识到我不知道我是否可以有效地查询这些信息。如果我有办法做到这一点,我更喜欢这种方法,只要没有性能问题。

每个参与其中的人都希望这个网站能流行起来,所以我想知道为大量用户服务的最佳结构。

如果我的问题已经有了答案,我很抱歉,我找到的答案都不适合我的情况,我真的不知道如何在搜索引擎上用词表达我的问题。

谢谢你能给我的任何帮助。

你想得太多了。现在把它都放在一个平面表里。当您看到数据集的类型/大小时,您总是可以对其进行优化并编写sql,使其产生相同的输出。

在实际实施之前不要进行优化。这听起来还不会有几十亿行。

最新更新