Титла: Изготвяне на база данни - създаване на таблици, нормализиране. Публикувано от: a_panov в Sep 14, 2009, 15:10 Имам желанието да напиша софтуер за отрязяване на спортно съзтезание. Идеята ми е да се вкарват съзтезателите в началото на годината и после само да се допълват. И да се указва дали съзтезателя от даден клуб ще участва на това съзтезание или не. По-надолу съм го разписал като текст, по-късно ще се опитам да създам някаква база и вие да кажете своето мнение. Имам желанието да го направя и на MySQL и на PostgresSQL. С първата съм работил, с втората по-малко но вярвам че е по-лесно. Искам всичко да е UTF-8, фронтенда може да е Apache-PHP, OOo или Delphi. Но нека да изчистим една база и тогава на нея отгоре по-лесно ще се строи. Ето какво имам като изходящо-входящи данни за едно съзтезание. Както казах, малко по късно ще пусна примерна база и ще моля да я нормализираме заедно.
- Писменно описание на какво имаме на едно съзтезание - Състезание, то има: отделни категории в които филтрирани и селектирани съзтезатели се борят за 123 и 4 място контакти: тел, имейл, адрес допълнителна информация Категориите филтрират и селектират съзтезателите по: възраст пол контакти: тел, имейл, адрес степен в карате вид на категорията: ката индивидуално, кумите индивидуално категориите имат два вида свършек с по един човек на първо и второ място и двама на трето. И втори случай с репешажи, с по един човек в 1-во, 2-ро, 3-то и 4-то място категории са до 8, 16, 32 и 64 човека. За препоръчване е да се правят по малки категории, да има две категории по 16 или 32 човека и да се дават повече медали. Съзтезателите имат: възраст пол степен в карате контакти: тел, имейл, адрес желание да участват в категория/нежелание – могат да присъстват в базата но да не се селектират за участие клуб към който членуват допълнителна информация Клуба има: контакти: тел, имейл, адрес треньор помощник треньор допълнителна информация Треньор и помощник треньора имат: възраст пол степен в карате контакти: тел, имейл, адрес клуб към който членува допълнителна информация Оттука следва, че каратистите имат: възраст: 4-99 пол:м, ж степен в карате 9к, 8к... 1к, 1д, 2д, 3д... контакти: тел, имейл, уеб сайт, скайп, ICQ, адрес желание/нежелание да участват в съзтезанието: автоматично поставяне в категориите клуб към който членуват: падащо меню с клубовете какъв вид е каратиста: съзтезател, треньор, помощник треньор, и неучастващ в съзтезанието, но и треньорите могат да участват в съзтезанието допълнителна информация оттук следва че предварително трябва да е въведен клуба: контакти: тел, имейл, уеб сайт, скайп, ICQ, адрес допълнителна информация връзката клуб<->треньор и клуб<->съзтезател се прави при „каратистите“ Титла: Re: Изготвяне на база данни - създаване на таблици, нормализиране. Публикувано от: bop_bop_mara в Sep 14, 2009, 17:04 Здрасти. На мен силата не ми е в базите данни, но за университетския курс ни препоръчаха книгата Database Systems: The Complete Book на Hector Garcia-Molina. Вътре има много добре обяснено как да си проектираме базата (на хартия и към релационния модел), как да я нормализираме и т.н. Ако можеш да я намериш тази книжка отнякъде, има какво да се научи.
Титла: Re: Изготвяне на база данни - създаване на таблици, нормализиране. Публикувано от: a_panov в Sep 15, 2009, 18:34 Код Това е което съм измислил за един ден, може би трябва да се направи външно свързване между играчите и категориите. Мисля да го допълня с нова таблица "участващи играчи" производна на karateka но само с играчите от заявката която е подал клуба за това съзтезание. И се вързват дата на съзтезание-дата на раждане на играча = години на играча, и така се вадят играчите които ще участват от клуба. И вече тази таблица на "участващите играчи" може с външно свързване или вътрешно ще се върже с категориите на съзтезанието. Трудно е за обяснение, като взема да го правя ще видим дали е добре. Титла: Re: Изготвяне на база данни - създаване на таблици, нормализиране. Публикувано от: VladSun в Sep 15, 2009, 23:41 Горе-долу бива :)
Според "скромният" ми опит ти трябва и категории по килограми, освен по години ;) Изнасянето на цялата информация за контактите в отделна таблица може би не е нужно - това си е информация неразривно свързана с обектите от другите таблици. Edit: Чак сега видях, че имаш връзката competition-category в category. Титла: Re: Изготвяне на база данни - създаване на таблици, нормализиране. Публикувано от: a_panov в Sep 20, 2009, 23:56 За последно много мислене му хвърлих и стигнах до тука. Още не съм получил формулярите за оценяване на ката и кумите за да им видя атрибутите. Така че на този етап таблиците category_kat и category_kum са примерни с това което зная че се изисква. а1-6 и s1-6 това са оценките на Ака и Широ. Може би някъде ще трябва да се сложи поле за заключване, тоест с enum и "y" и "n" софтуера да знае дали може да променя реда или не. Но това е на по-късен етап, сега трябва са се опишат релациите-връзки между обработваните данни. Чакам отзиви!
Код (http://www.karatebulgaria.com/alex/txt/2009-09-20/free-karate_database.jpeg) Може да ми пишете и в блога ми на www.karatebulgaria.com/alex |