Есть ли способ сделать двумерную базу данных на VB 2010? - PullRequest
0 голосов
/ 26 апреля 2011

Я готовлю программу для моих друзей-учителей, используя VB 2010 Express.Они ведут записи о своих учениках.Я подготовил базу данных, которая содержит таблицу с именем «Mystudents».В нем есть такие столбцы, как «studentId», «Имя», «Фамилия» и т. Д. ».Моя проблема начинается здесь.Каждый студент посещает много уроков в течение года.Я должен держать «какие уроки они посещали», «когда они посещали», «какую тему делали на уроках» для каждого ученика.например

Id: 104 Имя: Джейсон Фамилия: Black Класс: 10A 12.04.2011 он посещал урок математики, а 14.04.2011 - тригонометрию, он посещал урок физики и гравитацию ....... .......

Id: 105 Имя: Жениться Фамилия: Класс стюарда: 11B 02.04.2011, она посещала урок математики, а 14.04.2011 - тригонометрию, он посещал урок физики и гравитацию........ ........

я имею в виду, у меня есть список данных для каждой записи данных.Пожалуйста, помогите мне ..?

Ответы [ 5 ]

1 голос
/ 26 апреля 2011

В дизайне реляционной базы данных вы обычно включаете «таблицу отношений», чтобы отслеживать это:

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

Таблица Student имеет StudentID в качестве первичного ключа, таблица Lesson имеет LessonID в качестве первичного ключа, а таблица Students_Lessons содержит два столбца StudentID и LessonID, которые будут связывать студентов на уроки.

Как видно из схемы базы данных выше, каждая запись в таблице Student может быть связана с нулем или несколькими записями в таблице Students_Lessons. То же самое касается таблицы Lesson; каждая запись может быть связана с нулем или более записей в таблице Students_Lessons. Однако каждая запись в таблице Students_Lessons должна быть связана ровно с одной записью в Student и одной записью в Lesson.

Если каждый студент может посещать каждый урок только один раз, вы можете расширить таблицу Students_Lessons дополнительными столбцами для любой другой необходимой вам информации, в противном случае, вероятно, лучше дополнить модель данных дополнительными таблицами для хранения дополнительной информации.

0 голосов
/ 26 апреля 2011

Я бы использовал 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 ко многим", "многие ко многим" и "многие ко 1", которые помогут в разработке дизайна базы данных Google.ты здесь.

0 голосов
/ 26 апреля 2011
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)
        )
0 голосов
/ 26 апреля 2011

В чем вопрос?

Попробуйте записать все свойства / сущности, которые вы хотели бы сохранить в своей базе данных.Исходя из этого, вы можете выполнить некоторую нормализацию для достижения оптимальной структуры базы данных.

Например: у студента есть идентификатор, имя и фамилия.Эти свойства принадлежат друг другу в таблице учеников.

Далее;студент будет следить за уроками.Но это не отношения 1: 1.Итак, во-первых, вы получите таблицу «уроки», в которой определены все уроки, после чего вы получите таблицу StudentsLessons, в которой создана связь между уроками и посещенными студентами.

0 голосов
/ 26 апреля 2011

Если я не ошибаюсь, вы ищете отношения 1-N и MN.

Лучшее предложение - узнать больше о дизайне базы данных.Вы можете начать выискивать отношения 1-N и MN в реляционных базах данных.

Вы хотите поддержать это в VB, но это выходит за рамки .NET, но это вопрос проектирования баз данных:)

...