Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.216.32.116] |
|
Сообщ.
#1
,
|
||||||||||||||||||||||||||||||||||||||||||||||
|
Здравствуйте! с бд работаю впервые, вроде бы было все понятно. Могу составить простую структуру бд, но вот одна задачка поставила меня в тупик.
Мне нужно записывать в бд записывать программу уроков. Пример одной из программ: Цитата Программа уроков А класса Дата создания: 28.12.2014 Составитель: Иванов Иван Иванович
В итоге мне нужно хранить таблицу этих программ: Цитата
Примерно делал так: CREATE TABLE IF NOT EXISTS Documents (Id INTEGER PRIMARY KEY AUTOINCREMENT,Title VARCHAR,Date DATETIME DEFAULT CURRENT_TIMESTAMP, CreatorId INTEGER, DisciplineCount INTEGER); CREATE TABLE IF NOT EXISTS Creators(Id INTEGER PRIMARY KEY AUTOINCREMENT,FirstName VARCHAR,LastName VARCHAR,MiddleName VARCHAR); CREATE TABLE IF NOT EXISTS Disciplines(Id INTEGER PRIMARY KEY AUTOINCREMENT,TitleDiscipline VARCHAR,LectureCount INTEGER,TestCount INTEGER, ExamCount INTEGER); Вопрос у меня возник такой, как мне связать таблицы Documents и Disciplines ? Я думал сделать так: CREATE TABLE IF NOT EXISTS Disciplines(Id INTEGER PRIMARY KEY AUTOINCREMENT,TitleDiscipline VARCHAR,LectureCount INTEGER,TestCount INTEGER, ExamCount INTEGER, DocumentID INTEGER); т.е. добавил в Disciplines поле DocumentID, в котором планирую хранить номер документа. Но тут возникает проблема, в том что если документ у меня еще не создан, т.е. например я открыл форму для составления текущей программы, заполняю название программы, имя составителя, дату и начинаю добавлять дисциплины. Я ведь еще не добавил в бд этот документ, я не знаю какой у него будет номер, т.е. не могу заполнить поле DocumentID в таблице Disciplines. Я все же думаю что это будет неправильная структура. Подскажите пожалуйста как правильно составить структуру бд ? |
Сообщ.
#2
,
|
|
|
Прочитайте про отношение "один к одному", "один ко многим" и "много ко многим", сразу станет яснее. Вам нужно будет выбрать один из этих трех вариантов, и в зависимости от него строить структуру таблиц.
|