На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Вопрос про составление структуры БД sqlite
    Здравствуйте! с бд работаю впервые, вроде бы было все понятно. Могу составить простую структуру бд, но вот одна задачка поставила меня в тупик.
    Мне нужно записывать в бд записывать программу уроков.
    Пример одной из программ:
    Цитата

    Программа уроков А класса
    Дата создания: 28.12.2014
    Составитель: Иванов Иван Иванович
    НомерНазваниеЛекции,кол-во часовКонтрольные работы,кол-воЭкзамены,кол-во
    1.Математика 10031
    2.Русский язык 15052
    3.Литература10043
    ...............



    В итоге мне нужно хранить таблицу этих программ:
    Цитата

    номерназвание программыдатасоставительколичество дисциплин
    1.Программа уроков А класса28.12.2014Иванов Иван Иванович5
    2.Программа уроков Б класса28.12.2014Петров Петр Петрович7
    ...............



    Примерно делал так:
    ExpandedWrap disabled
      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 ? Я думал сделать так:
    ExpandedWrap disabled
      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.

    Я все же думаю что это будет неправильная структура.
    Подскажите пожалуйста как правильно составить структуру бд ?
      Прочитайте про отношение "один к одному", "один ко многим" и "много ко многим", сразу станет яснее. Вам нужно будет выбрать один из этих трех вариантов, и в зависимости от него строить структуру таблиц.
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0180 ]   [ 16 queries used ]   [ Generated: 19.04.24, 14:12 GMT ]