产品/协议审查系统的标准化

时间:2016-04-19 07:40:23

标签: mysql normalization rating review

我正在制定一个审核系统,根据问卷调查结果显示产品评论。

示例:

  1. 你喜欢什么食物(意大利,法国或融合)
  2. 你喜欢哪种蔬菜(菠菜,西红柿或西兰花)
  3. 您想在晚餐上花多少钱($ 0- $ 10,$ 11- $ 20或$ 21- $ 30)
  4. 如果有人选择意大利菜,番茄,0至10美元,那么用户会看到(例如)20种比萨饼,并显示其他用户的评论。 但我们只想展示已经过问卷调查的完全相同结果的产品(我们称之为协议)。

    Table: questions
    -----------------------------------
    | id | question                   |
    -----------------------------------
    | 1  | What food do you like      |
    -----------------------------------
    | 2  | Which vegetables do you... |
    -----------------------------------
    
    Table: possible_answers
    -----------------------------------
    | id | question_id | answer       |
    -----------------------------------
    | 1  | 1           | Italian      |
    -----------------------------------
    | 2  | 1           | French       |
    -----------------------------------
    
    Table: products
    ---------------------
    | id | product      |
    ---------------------
    | 1  | Pizza Salami | 
    ---------------------
    | 2  | Pizza cheese | 
    ---------------------
    

    从数据库的角度来看(我们正在使用mySQL),我想知道如何存储附加到每个评论的协议

    [OPTION 1]
    Table: reviews
    ---------------------------------------------------------------------------
    | id | product_id   | answer_q1_id | answer_q2_id | answer_q3_id | rating |
    ---------------------------------------------------------------------------
    | 1  | 2            | 3            | 57           | 166          | 4      |
    ---------------------------------------------------------------------------
    | 2  | 25           | 3            | 57           | 166          | 5      |
    ---------------------------------------------------------------------------
    [/OPTION 1]
    
    
    [OPTION 2]
    Table: reviews
    -------------------------------
    | id | product_id   | rating |
    -------------------------------
    | 1  | 2            | 4       |
    -------------------------------
    | 2  | 25           | 5       |
    -------------------------------
    
    Table: protocol
    -----------------------------------------------
    | id | review_id    | question_id | answer_id |
    -----------------------------------------------
    | 1  | 1            | 1           | 3         |
    -----------------------------------------------
    | 2  | 1            | 2           | 57        |
    -----------------------------------------------
    | 2  | 1            | 3           | 166       |
    -----------------------------------------------
    [/OPTION 2]
    

    通常情况下,我选择的是选项2,这只是感觉'更好。但我不确定如何查询协议表以获得问卷(协议)中特定路径的所有产品评论。例如,当用户回答意大利语,菠菜,0-10'时,如何使用选项2找出哪些产品评论与答案组合一起使用(选项1显然如何执行此操作) ?

    我希望我已经很好地解释了这一点,并且我期待着从社区中阅读这些想法。

    非常感谢,

    梅西。

0 个答案:

没有答案