![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Есть таблица, каждый месяц к ней будет добавляться столбец, с именем, содержащим текущий месяц и год.
Каким запросом проверить, есть ли столбец с таким именем, чтобы не генерировалась ошибка, а чтобы например, в случае отсутствия такового mysql возвращал ноль или что-то в этом роде? |
|||
|
||||
azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
![]()
|
||||
|
|||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
чем вызвана необходимость добавления поля каждый месяц?
|
|||
|
||||
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Потому как каждый месяц записываются данные из двумерного массива и создавать таблицу на каждый месяц неохота.
Я выстроил двумерную таблицу по рядам. |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
||||
|
||||
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
show columns from oet_balls where name='d200904' - выдало ошибку #1054 - Unknown column 'name' in 'where clause'
|
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
не name а Field |
|||
|
||||
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
DimW, объясняю задачу.
В учреждении работают эксперты и лаборанты. Их труд оценивается в баллах. Причем закрепленности сотрудников друг за другом нет - все работают со всеми. Итог работы - таблица - по горизонтали эксперты, по вертикали лаборанты, в ячейках баллы каждого эксперта с каждым лаборантом. А еще хочется каждый месяц добавлять в таблицу новые данные, сохраняя старые. По совету людей на этом же форуме я сделал таблицу с полями: laborant expert d200904 в соответствии со всеми возможными сочетаниями экспертов и лаборантов добавляю строки: Э1---Л1 10 Э1--Л2 20 Э2--Л1 25 Э2--Л2 30 Критикуйте, как хотите, но программа уже написана и отлично работает. Осталось добавить внесение данных с добавлением нового столбца. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
а вообще горизонтальное расширение таблиц - это извращенство
![]() лучше добавить колонку DATE |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
||||
|
||||
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Да почему же, буду рад критике.
Объясните, каким образом правильно, на будущее. |
|||
|
||||
DimW |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
ок:
отсюда получаем сущность "ЛАБОРАНТ" и "ЭКСПЕРТ".
обычно связь многие ко многим организуется третьей таблицей, в ней и будет информация о баллах:
получаем что эксперт Иванова работала со всеми лаборантами и все лаборанты работали с ней. эксперт Петрова работала только с лаборантом Ивановым, а Иванов и с Ивановой и с Петровой. А эксперт Сидорова вообще ни скем не работала. думаю обьяснил доходчиво, дерзайте. ![]() |
||||||||
|
|||||||||
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
DimW, а в чем отличие того что предложили вы от того, как сделал я? (см. описание выше)
И где трехмерность, то бишь баллы для разных дат? Таблица, которую вы создали будет относительно нехилая (в нашем учреждении в одном только отделе получится 221 ряд в таблице), а если добавить столбец date, то каждый месяц придется прибавлять по 221 записи с практически дублирующим содержимым (лаборант и эксперт). Если же расширять таблицу добавлением колонок, то добавляется всего одна колонка с цифрами. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Нехилая таблица - это таблица в пару террабайт..а ваша таблица - самая обыкновенная.. повторяющиеся данные можно выделить в отдельную таблицу и связать через какой нибудь идентификатор |
|||
|
||||
DimW |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
периоды я бы организовал отдельной сущностью:
и в таблицу ЭКСПЕРТ_ЛАБОРАНТ добавил id_period:
=Женек=, вы бы лучше подумали как потом отчетность строить будите по своей структуре чем беспокоеться о такой ерунде:
|
||||||
|
|||||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
отличие в том что в моем случае реализована реляционная модель, а вашем непонятно что. если потребуется отчет за период то в моем случае это будет выглядеть так:
в вашем случае пришлось бы для каждого периода делать отдельный отчет ибо период реализован отдельным полем, неговоря уже об отчете за несколько периодов. разницу уловили? Это сообщение отредактировал(а) DimW - 24.4.2009, 16:39 |
|||
|
||||
=Женек= |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 20.2.2005 Репутация: нет Всего: 1 |
Зачем периоды отдельной сущностью?
Вроде бы как-то мождно записывать тип date чтобы он содержал только год и месяц... |
|||
|
||||
Bikutoru |
|
||||
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 1 Всего: 22 |
Если еще актуально:
Хотя, имхо, добавлять колонку каждый месяц - плохая идея. Добавлено через 3 минуты и 55 секунд http://dev.mysql.com/doc/refman/5.0/en/col...ount-limit.html Еще одна причина НЕ добавлять колонки каждый месяц:
При большом количестве колонок (а их может быть не больше 4096 или 1000 в InnoDB) этого может не хватить -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
||||
|
|||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
это дело вкуса, в данном конкретном случае можно обойтись и добавлением поля, но представте что в будущем у вас появится еще сущность которая должна ограничиваться рамками того же приода что и лаборанты, эксперты, в этом случае сущность ПЕРИОД будет кстати. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |