2016-01-10 2 views
-2

Я только что начал новый проект, в котором пользователь управляет различными классами (как в школе), где каждый класс проходит в разные дни недели.PHP и MySql Флажки и двоичные числа для разных комбинаций

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

Итак, в моей таблице mysql есть поля: id int, имя varchar, daysOfWeek binary, teacherID int.

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

Так что, если я выбираю только понедельник, он дает мне 01000000 (или 64), для повседневной, кроме субботы и воскресенья, он дает 01111100. С первым битом будет воскресенье, а последний бит игнорируется, поскольку у нас есть только 7 дней в неделю ,

Это самый дорогой способ, которым я мог бы придумать эти значения.

Мой вопрос: Я делаю это неправильно? Есть ли другой простой способ сделать это? Должен ли я создать логическое поле для каждого дня недели в моей таблице?

В любом случае, спасибо заранее.

ответ

0

ОК это база данных, проблема с деисом, а не php/mysql.

Но в любом случае .... почему вы боитесь иметь больше столбцов? Один на каждый день. Столбцы могут фактически содержать больше информации ... например, фактическое время урока в этот день, или учитель, или продолжительность урока. Затем при запросе вы можете увидеть, что значение NULL означает не урок, а также позволяет вам запрашивать дневные уроки или что-то еще.

Не беспокойтесь о оптимизации с самого начала. Постройте его со всеми необходимыми функциями, а затем посмотрите на его улучшение. Только с опытом вы можете предвидеть проблемы лучше/раньше.

Смежные вопросы