как правильно делать

Тема в разделе "Базы данных", создана пользователем droit74, 19 мар 2011.

Модераторы: latteo
  1. droit74

    droit74 Постоялец

    Регистр.:
    20 сен 2009
    Сообщения:
    55
    Симпатии:
    0
    есть таблица в ней список преподавателей, к каждому преподавателю относится несколько предметов.
    1. делать 2 таблицы в первой список преподавателей во второй настройки каждого из них. пример:
    PHP:
    teachers:
    idt |  teachers 
    1   
    Васильевна
    teachers_settings
    :
    PHP:
    idt subject
    1   
    математический анализ
    1   
    теория вероятности 
    1   
    линейная алгебра
    2. делать одну таблицу ???
    PHP:
    idt teachers   subject
    1   
    Васильевна | ???????
    как правильно формулировать поле subject ?
     
  2. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    Таблица 1
    PHP:
    id teacher_name
    1  
    Васильева
    Таблица 2
    PHP:
    id teacher_id subject_name
    1  
    1          Математика
    ИМХО
     
  3. droit74

    droit74 Постоялец

    Регистр.:
    20 сен 2009
    Сообщения:
    55
    Симпатии:
    0
    artcosmic но вопрос был не в этом...
     
  4. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    Вопрос я понял так: как правильно реализовать архитектуру БД - в одной или в двух таблицах?
    Я на него ответил - в двух таблицах - и заодно подсказал структуру, как бы я сделал (точнее, я так обычно и делаю).
    Или я не правильно понял вопрос?
     
  5. droit74

    droit74 Постоялец

    Регистр.:
    20 сен 2009
    Сообщения:
    55
    Симпатии:
    0
    зачем уникальный идентификатор
     
  6. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    200
    Симпатии:
    55
    А затем, что в случае /редактирования/удаления/изменеия_принадлежности_к_ругому_teacher и еще 100500 вариантов серверу БД будет "легко" искать конкретную запись.
    А с в случае редактирования будет, как в рекламе: "ведь это все, что у нее осталось своего".
     
  7. exn

    exn Постоялец

    Регистр.:
    22 янв 2010
    Сообщения:
    146
    Симпатии:
    23
    droit74 не сопративляйтесь, комрад horpah все верно говорит, внимайте и учитесь.

    только не teacher_id, а id_teacher. _id это для внутренних связей конвенция.
     
  8. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    гы, тут же связь многие ко многим ... какие 2 таблицы могут быть? или вы уже денормализацию на лету делаете?

    по правилам проектирования реляционных БД, должно быть так как на диаграмме ( если это для реляционной БД спрашивается )
    такая модель гарантирует целостность данных + нет избыточности
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      12,1 КБ
      Просмотров:
      10
    droit74 нравится это.
  9. droit74

    droit74 Постоялец

    Регистр.:
    20 сен 2009
    Сообщения:
    55
    Симпатии:
    0
    chang пересмотрел свою БД именно так у меня и сделано. но всё ровно спасибо.