Я работаю над своим проектом в php [управление системой посещаемости учащихся]. У меня есть список студентов вместе с их уникальным id [jntuno
], и мне нужно создать базу данных в mysql для хранения ежедневной посещаемости каждого ученика для каждого предмета. Так что я создал свои таблицы таким образом:Создание столбцов таблицы с использованием строк другого
У меня есть таблица students
в MySQL со следующими полями и в нем данных:
теперь я хочу, чтобы создать новую таблицу с каждым из значения в поле jntuno
в качестве столбцов моей новой таблицы.
Я хочу, чтобы моя новая таблица [назовем его attendance
], чтобы столбцы, как это:
+------------+-----------+----------+-----------+-----------+
|11341A0501 |11341A0502 |11341A0503|11341A0504 |11341A0505 |......
+------------+-----------+----------+-----------+-----------+
| | | | | |
Как сделать это в MySQL?
Я позже добавить 3 поля в attendance
таблице а именно:
->date
[дата, на которой преподается конкретный предмет],
->subject
[название предмета преподается ] и
->hours taught
[количество часов, в течение которого конкретный предмет преподается (может быть 1 или 2, или 3 ... до 6)]
каждых subject
преподавал на конкретном date
будет добавлять новый row
к attendance
таблице
Пример:
+------------+-----------+-----------------+------------+-----------+----------+-----------+-----------+
|date |subject | classes taught |11341A0501 |11341A0502 |11341A0503|11341A0504 |11341A0505 |..
+------------+-----------+-----------------+------------+-----------+----------+-----------+-----------+
|2013-09-31 |OOPS |3 |2 |3 |0 |1 |3 |
Я выбираю таблицы в этом случае так, что запись посещаемости в таблицу будет больше Быстрее.
Но многие называют это ПЛОХАЯ СТРУКТУРА БАЗА ДАННЫХ. Поэтому, пожалуйста, предложите мне, если есть какой-то другой хороший и эффективный дизайн базы данных для моей проблемы
Обычно это не хорошо спроектированная модель. У вас есть нормализованная схема базы данных? –
Есть ли альтернатива для этого типа проблем? если да, пожалуйста, предложите мне –
Если вы хотите хранить данные об учениках, просто добавьте 'student_id' в свою новую таблицу. Определите его как * внешний ключ * в таблице 'student'. Возможно, [это] (http://agiledata.org/essays/dataNormalization.html) может вам помочь. –