有没有办法在vb 2010上制作二维数据库?

时间:2011-04-26 08:49:45

标签: database vb.net visual-studio-2010 visual-studio-2008 n-dimensional

我正在使用vb 2010 express为我的老师朋友准备一个程序。他们记录了他们的学生。我准备了一个包含名为“Mystudents”的表的数据库。它有像“studentId,Name,Surname等......”这样的列。我的问题从这里开始。每个学生在一年内参加很多课程。我必须为每个学生保留“他们参加过哪些课程”,“他们何时参加”,“在课程中完成哪个课程”。例如

Id:104 姓名:杰森 姓:黑色 等级:10A 2011年4月12日,他参加了数学课,他们做了三部曲学习 2011年4月14日,他参加了物理课,他们做了引力 ....... .......

Id:105 姓名:结婚 姓:管家 分类:11B 2011年4月2日,她参加了数学课,他们做了三部曲学习 2011年4月14日,他参加了物理课,他们做了引力 ....... ........

我的意思是我有每个数据库记录的数据列表。请停下来..?

5 个答案:

答案 0 :(得分:1)

在关系数据库设计中,您通常会包含一个“关系表”来跟踪它:

   --------------
   |  Student   |
   --------------
         | 1
         |      
         | 0..*
--------------------
| Students_Lessons |
--------------------
         | 0..*
         |
         | 1
   --------------
   |   Lesson   |
   --------------

Student表以StudentID为主键,Lesson表以LessonID为主键,Students_Lessons表包含两列{ {1}}和StudentID会将学生与课程联系起来。

正如您在上面的数据库设计中所看到的,LessonID表中的每条记录都可以链接到Student表中的零个或多个记录。 Students_Lessons表也是如此;每条记录都可以链接到Lesson表中的零个或多个记录。但是,Students_Lessons表中的每条记录都必须与Students_Lessons中的一条记录和Student中的一条记录相关联。

如果每个学生只能参加一次课程,您可以使用其他列扩展Lesson表以获取您需要的任何其他信息,否则最好使用其他表扩展数据模型以存储更多信息

答案 1 :(得分:0)

如果我没错,你正在寻找1-N和M-N的关系。

最好的建议是,您应该了解有关数据库设计的更多信息。您可以开始在关系数据库中搜索1-N和M-N关系。

您希望在VB中支持它,但这不是.NET范围,但它是数据库设计的事情:)

答案 2 :(得分:0)

问题是什么?

尝试记下您要存储在数据库中的所有属性/实体。基于此,您可以执行一些规范化以实现最佳的数据库结构。

例如:学生有身份证,姓名和姓氏。这些属性属于学生表。

此外;学生将学习课程。但这不是1:1的关系。因此,首先,您将获得一个表'课程',其中所有课程都已定义,之后您将获得一个StudentLessons表,其中创建课程与学生之间的链接。

答案 3 :(得分:0)

CREATE TABLE student
        (
        id INT NOT NULL PRIMARY KEY,
        firstName NVARCHAR(200),
        lastName NVARCHAR(200),
        )

CREATE TABLE subject
        (
        id INT NOT NULL PRIMARY KEY,
        subjectName NVARCHAR(200)
        )

CREATE TABLE class
        (
        id INT NOT NULL PRIMARY KEY,
        subjectId INT NOT NULL
                FOREIGN KEY
                REFERENCES subject,
        classDate DATE,
        topic NVARCHAR(200)
        )

CREATE TABLE student_class
        (
        studentId INT NOT NULL
                FOREIGN KEY
                REFERENCES student,
        classId INT NOT NULL
                FOREIGN KEY
                REFERENCES class,
        PRIMARY KEY (studentId, classId)
        )

答案 4 :(得分:0)

我会使用3张桌子。

students

student_id    student name .. etc ..
1             jane doe
2             jack dee


lessons

lesson_id    lesson_name   .. etc..
1            gravity 101
2            hard maths
3            hampsters  

student_lessons

student_id    lesson_id
1             1
1             2
1             3

谷歌数据库设计的东西,如“正常形式”,“1对多”,“多对多”和“多对一”的关系将在这里帮助你。