作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经实现了以下存储关系拓扑的方法:
1.一般联结关系表:
Table: Relation
Columns: id parent_type parent_id parent_prop child_type child_id child_prop
Table: Class2Student
Columns: id parent_id parent_prop child_id child_prop
text
中两个双向对象上的字段。
Class: Class
Class properties: id name students
Table columns: id name students_keys
Rows: 1 "history" [{type:Basic_student,id:1},{type:Advanced_student,id:3}]
[1,3]
,这将变得更加容易。 ,即与显式
Student
的关系类型。
keys
的关系字段,因为一个递归保存,一个可以强制执行keys
提供的联结表? field ? junction table
的唯一实现差异与 keys
相比字段如下:keys
具有自定义索引实现或其他一些合理实现的字段:
class_dao.search({students:advanced_student_3,name:"history"});
search for Classes that have a particular student and name "history"
最佳答案
在我看来,你有几个实体
CREATE TABLE StudentType
(
Id Int PRIMARY KEY,
Name NVarChar(50)
);
INSERT StudentType VALUES
(
(1, 'Basic'),
(2, 'Advanced'),
(3, 'SomeOtherCategory')
);
CREATE TABLE Student
(
Id Int PRIMARY KEY,
Name NVarChar(200),
OtherAttributeCommonToAllStudents Int,
Type Int,
CONSTRAINT FK_Student_StudentType
FOREIGN KEY (Type) REFERENCES StudentType(Id)
)
CREATE TABLE StudentAdvanced
(
Id Int PRIMARY KEY,
AdvancedOnlyAttribute Int,
CONSTRIANT FK_StudentAdvanced_Student
FOREIGN KEY (Id) REFERENCES Student(Id)
)
CREATE TABLE StudentSomeOtherCategory
(
Id Int PRIMARY KEY,
SomeOtherCategoryOnlyAttribute Int,
CONSTRIANT FK_StudentSomeOtherCategory_Student
FOREIGN KEY (Id) REFERENCES Student(Id)
)
Student
上都有列。 table 。 StudentType
table 。 Student<TypeName>
表来存储它的特定属性。这些表与 Student
具有可选的一对一关系。 . CREATE TABLE Class
(
Id Int PRIMARY KEY,
...
)
CREATE TABLE Registration
(
Id Int PRIMARY KEY,
StudentId Int,
ClassId Int,
CONSTRAINT FK_Registration_Student
FOREIGN KEY (StudentId) REFERENCES Student(Id),
CONSTRAINT FK_Registration_Class
FOREIGN KEY (ClassId) REFERENCES Class(Id)
)
Class
和
Student
这样,你将如何选择一个类(class)的所有学生和一个学生阅读的所有类(class)。性能方面,这很容易通过关键列上的索引进行优化。
CREATE TABLE StudentClass
(
StudentId Int,
ClassId Int,
CONSTRAINT PK_StudentClass PRIMARY KEY (ClassId, StudentId),
CONSTRAINT FK_Registration_Student
FOREIGN KEY (StudentId) REFERENCES Student(Id),
CONSTRAINT FK_Registration_Class
FOREIGN KEY (ClassId) REFERENCES Class(Id)
)
// students in a class?
SELECT StudentId
FROM StudentClass
WHERE ClassId = @classId
// classes read by a student?
SELECT ClassId
FROM StudentClass
WHERE StudentId = @studentId
关于sql - 联结表的必要性是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22373827/
所以我有这个棋盘,可以玩棋盘游戏...问题是,我怎么知道用户点击了哪个方 block ?我知道 x 和 y 坐标,但我该如何自动化它,而不需要寻找每个方 block 的具体位置。 (而且棋盘的大小是可
我是一名优秀的程序员,十分优秀!