zoukankan      html  css  js  c++  java
  • 数据表设计感想

    需求:管理问题,并对问题进行分类,问题与类别存在多对多的关系。

    方法1:新建一个AskType类别表,包含(类别ID)AskTypeID,(类别名称)AskTypeName,(问题ID)QuestionID,(问题名称)QuestionName.

    再建一个Question问题表,包含(问题ID)QuestionID,(问题名称)QuestionName.

    类别与问题存在多对多的关系。一个问题可以属于多个问题类别,一个类别可以包含多个问题.这些关系都在AskType表中体现.

    方法2:新建一个AskType类别表,包含(类别ID)AskTypeID和(类别名称)AskTypeName.

    再建一个Quesiton问题表,包含(问题ID)QuestionID,(问题名称)QuestionName.

    再建一个Relation表,包含(关系ID)RelationID,(类别ID)AskTypeID,(问题ID)QuestionID.

    类别与问题存在多对多的关系。一个问题可以属于多个问题类别,一个类别可以包含多个问题.这些关系都在Relation表中体现.

    方法3:新建一个AskType类别表,包含(类别ID)AskTypeID和(类别名称)AskTypeName.

      再建一个Quesiton问题表,包含(问题ID)QuestionID,(问题名称)QuestionName,(类别ID)AskTypeID.

      类别与问题存在多对多的关系。一个问题可以属于多个问题类别,一个类别可以包含多个问题.

      这些关系都在Quesiton表中体现,Quesiton表中的AskTypeID字段可以存储多个类别ID,以字符串的形式保存,各个类别ID以,分隔。(如"1,2,3")

    3个方法,都有哪些优点,哪些缺点?那个方法最佳?

    学习的路上,分享的知识有不当的地方,希望大家指出。 感谢大家的阅读,希望这些分享能够给您带来帮助。
  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/lanchong/p/2350509.html
Copyright © 2011-2022 走看看