Организация базы

Фанат

oncle terrible
Команда форума
lolshik
для начала добавь в таблицу отметок все поля, о которых я говорил
 

lolshik

Новичок
CREATE TABLE `marks` (
`id_subject` char(20) NOT NULL default '',
`id_pupil` char(20) NOT NULL default '',
`mark` char(5) NOT NULL default '',
date date NOT NULL
);

сделал, как ты сказал
 

Фанат

oncle terrible
Команда форума
ну вот
только не маловато тебе символов для даты?
а в чем запутался-то?
 

Фанат

oncle terrible
Команда форума
а, это я не на ту строчку посмотрел.
тогда почему у тебя так много места отведено под оценку? =)
но это все мелочи.
ты на вопрос отвечать будешь?
или все у тебя уже в порядке?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
lolshik
Вам может ещё понадобиться таблица классы.
 

lolshik

Новичок
Я не знаю как теперь делать запросы =(
Как запрашивать среднеарифместическое (

-~{}~ 09.05.07 19:05:

Автор оригинала: Mr_Max
lolshik
Вам может ещё понадобиться таблица классы.
Отдельная таблица? Может сделать поле в таблице учеников для классса?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Это дело вкуса.
Представьте, что у Вас кончается учебный год....
соответственно в школе, например 2000 учеников.
Вам нужно поменять данные в 2000-ах строк таблицы.

Конечно можно сделать это неколькими запросаим.

Но дополнительной таблицой красивше и Вы более защищены от ошибок.

Нпример
Вы написали запрос на Обновление информации о классах и ошиблись поставив два одинаковых класа...

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

lolshik

Новичок
mysql> CREATE table address_book (
-> name CHAR(20) NOT NULL,
-> address CHAR(20) NOT NULL,
-> birthday DATETIME NOT NULL,
-> opisan CHAR(20) NOT NULL
-> ) TYPE=MyISAM;
Query OK, 0 rows affected, 1 warning (0.03 sec)

почму собственно warning? если не указывать тип базы явно - то такая надпись не появляется
 

Фанат

oncle terrible
Команда форума
select id_pupil, avg(mark) from marks group by id_pupil
фамилии сюда добавляются джойном
 

lolshik

Новичок
Автор оригинала: Фанат
select id_pupil, avg(mark) from marks group by id_pupil
фамилии сюда добавляются джойном
спасибо за запрос

а вот это
mysql> CREATE table address_book (
-> name CHAR(20) NOT NULL,
-> address CHAR(20) NOT NULL,
-> birthday DATETIME NOT NULL,
-> opisan CHAR(20) NOT NULL
-> ) TYPE=MyISAM;
Query OK, 0 rows affected, 1 warning (0.03 sec)

почму собственно warning? если не указывать тип базы явно - то такая надпись не появляется
 

lolshik

Новичок
Автор оригинала: Фанат
не знаю.
не указывай тип базы явно
Тогда он будет на автомате - InnoDB, а мне нужно MyISAM
Где можно посмотреть лог, чтобы узнать в чм проблема?
 

Фанат

oncle terrible
Команда форума
мне тоже так кажется, а лог я посмотреть не знаю где.
а вот поле id - первичный индекс с автоинкрементом, сделать бы надо в таблице обязательно.
и для даты рождения поле datetime несколько избыточно, на мой взгляд.
а для описания 20 символов - наоборот мало
 

lolshik

Новичок
Автор оригинала: AP
lolshik, по умолчанию тип таблицы MyISAM...
странно у меня свежая mysql 4,1 кажется. Юзает по дефолту InnoDb (как это уточнить? где посмотреть?)

мне тоже так кажется, а лог я посмотреть не знаю где. а вот поле id - первичный индекс с автоинкрементом, сделать бы надо в таблице обязательно. и для даты рождения поле datetime несколько избыточно, на мой взгляд. а для описания 20 символов - наоборот мало
Для чего id? Чтобы сортировать было удобнее? Поянсните.
И как бы вы написали поле для datetime?
 

Фанат

oncle terrible
Команда форума
это ты потом поймешь. со временем.
а сейчас просто добавь.
И как бы вы написали поле для datetime?
попробуй задать этот вопрос ещё раз.
связи со своим вопросом к тебе я в нем не увидел
 

lolshik

Новичок
Автор оригинала: Фанат
это ты потом поймешь. со временем.
а сейчас просто добавь.

попробуй задать этот вопрос ещё раз.
связи со своим вопросом к тебе я в нем не увидел

и для даты рождения поле datetime несколько избыточно, на мой взгляд.
вот связь. Избыточно? как бы вы написали datetime?


про Id - помогло h**p://phpfaq.ru/mysql
 

Фанат

oncle terrible
Команда форума
никак бы не стал писать. Поскольку избыточно.
Учись формулировать вопросы по-человечески.

ты сам-то вдумайся смысл того, что пишешь что такое "поле для datetime"?
 
Сверху