数据表设计感想
需求:管理问题,并对问题进行分类,问题与类别存在多对多的关系。
方法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个方法,都有哪些优点,哪些缺点?那个方法最佳?