Sql server 一对多或多对多用例的数据库设计?
我有一个要求,其中有四个连续的一到多个表层,如下所示Sql server 一对多或多对多用例的数据库设计?,sql-server,database-design,spring-data-jpa,Sql Server,Database Design,Spring Data Jpa,我有一个要求,其中有四个连续的一到多个表层,如下所示 School SchoolID | SName ----------------- 1 | HSS1 2 | HSS2 3 | HSS3 4 | HSS4 Class ClassID | CName | SchoolID ------------------------------- 1 | Class1 | 1 2 | Cl
School
SchoolID | SName
-----------------
1 | HSS1
2 | HSS2
3 | HSS3
4 | HSS4
Class
ClassID | CName | SchoolID
-------------------------------
1 | Class1 | 1
2 | Class2 | 1
3 | Class3 | 3
4 | Class4 | 3
Student
StudentID | StName | ClassID
-------------------------------
1 | StudC1 | 1
2 | StudC2 | 1
3 | StudC3 | 2
4 | StudC4 | 2
Bench
BenchID | BName | StudentID
-------------------------------
1 | Bench1 | 1
2 | Bench2 | 1
3 | Bench3 | 1
4 | Bench4 | 2
1 | Bench1 | 3
2 | Bench2 | 3
3 | Bench3 | 4
4 | Bench4 | 4
其想法是从数据库中以json格式获取响应
{
"resources": [
{
"SName": "HSS1",
"ClassList": [
{
"CName": [
{
"CName": "Class1",
"StudentList": [
{
"StName": "StudC1",
"BenchList": [
{
"BName": "Bench1"
},
{
"BName": "Bench2"
},
{
"BName": "Bench3"
}
]
},
{
"StName": "StudC2",
"BenchList": [
{
"BName": "Bench4"
}
]
}
]
},
{
"CName": "Class2",
"StudentList": [
{
"StName": "StudC3"
},
{
"StName": "StudC4"
}
]
}
]
}
]
}
]
}
我的问题是,
注意:假设表名是示例名称,并考虑所有4个表是一对多连接
需要社区对此方法提出建议,以及更好的解决方案(如果有)。由于多种原因,脱离主题。这是一个针对特定问题的技术问答网站,而不是一个概括的“评估我的模式”并提出改进建议。此外,每篇文章都应该限制在一个问题上。最后,您应该设计您的模式,以准确、正确地反映您正在建模的实际系统,而不是让开发人员和应用程序更容易使用结果集。我不知道现实生活中的实体“bench”是什么,它演示了在没有您的经验的情况下,您的系统模型如何不容易转换到其他实体。而“目标表”意味着什么?还有另一个数据库/系统,您必须为其转换信息并将其导出到该模式?为什么不直接使用该模式作为起点?@SMor感谢您的评论,表名不是我必须在讨论中指定的真实示例。但是是的,这4个表是一一嵌套的。并且使用同一组表结构作为主仓库表,并且上面的表将每月同步到仓库表结构一次。目前我所处的环境是weather是否需要使用这种模式来设计这样的表和仓库表?这会不会引起我在所列问题中提到的任何问题。