MySQL表设计结构用户首选项

时间:2012-09-15 16:59:15

标签: mysql database-design web query-optimization

我最近的任务是帮助为约会网站建立一个数据库。我根本不是数据库概念的新手,但我遇到了障碍,不知道如何继续。

请注意,我已经尝试过寻找答案,但结果都不是很明确,这就是为什么我自己也会这样问。此外,我熟悉1对1,1对多,多对多的概念。

网站的用户将在匹配中选择他们正在寻找的内容,并提供自己的信息进行匹配。

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

根据我的搜索,最受欢迎的答案是:

  1. 在一个表中为每个复选框添加一个字段
  2. 使用多对多关系,每个复选框都是表格中的记录
  3. 而且,我应该存储他们正在寻找的内容,还是应该将其留给用户自行运行的查询?

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

    我希望能够存储用户在匹配中搜索的内容,以便可以自动建议匹配,但我不知道如何以高效格式创建此结构(如果有的话)。

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

    所涉及的每个人都希望网站变得流行,所以我想知道为大量用户提供服务的最佳结构。

    如果我的问题已经得到答案,我很抱歉,我认为没有一个答案符合我的情况,而且我真的不知道如何用搜索引擎来表达我的问题。

    感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

你在想它。现在把它全部放在一张平台上。当您看到数据集的类型/大小时,您始终可以对其进行优化并编写sql以使其生成相同的输出。

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

相关问题