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个方法,都有哪些优点,哪些缺点?那个方法最佳?

    学习的路上,分享的知识有不当的地方,希望大家指出。 感谢大家的阅读,希望这些分享能够给您带来帮助。
  • 相关阅读:
    [Go] 实现websocket服务端
    [PHP] php使用event扩展的io复用测试
    [MySQL] 使用force index强制使用索引
    [Go] 使用net包作为tcp客户端读取http
    [Go] golang中的包管理
    [Go] 解决golang.org模块无法下载的问题
    [日常] linux设置环境变量
    [Go] golang定时器与redis结合
    [Go] golang定时器的使用
    [Linux] linux路由表
  • 原文地址:https://www.cnblogs.com/lanchong/p/2350509.html
Copyright © 2011-2022 走看看