- •Актуальность.
- •Целевая аудитория.
- •Требования к базе.
- •Сущности и связи:
- •Описание полей.
- •Функциональные зависимости.
- •Sql листинги:
- •Insert (Вставка данных):
- •1. Вывод всех физических способностей, с силой больше 20 и указать класс этой способности.
- •2. Вывод правителей и наследников
- •3. Вывод всех способностей и сопротивлений, которые дает специализации храмовник и паладин. Должно вывестись id, название способности, мощность и описание.
- •4. Вывод всех споосбностей и сопротивлений,которые дают расы эльф, человек и гном из разных вселенных.
- •5. Вывод имени персонажа, который является и героем и правителем страны, его звание, расу и бога (богов) в которых он верит.
- •6. Вывод персонажей и богов, в которых они верят, а также расы к которой они принадлежат и их специализации, если она есть
- •7. Вывод всех стран в базе, Миров в которых они находятся, месторасположение, а также количество персонажей в этой стране, который находятся в базе.
- •8. Вывод персонажей являющихся родственниками (представителями клана)
- •9. Вывод добрых богов и благословений которые они дают, а также способности благословений и число людей которые в них верят.
- •10. Вывод героя с максимальным уровнем.
9. Вывод добрых богов и благословений которые они дают, а также способности благословений и число людей которые в них верят.
SELECT `g`.`name` AS 'GOD',
`b`.`name` AS 'BLESSING',
`t`.`type`,
`a`.`name` AS 'ABILITY and SUSCEBTIBILITY',
COUNT(`g_c`.`id_god`) AS 'faithful(верующие)'
FROM `god` as `g`,
`type_god` AS `t`,
`character` as `c`,
`god_character` AS `g_c`,
`blessing` as `b`
LEFT JOIN `ability_blessing` AS `a_b`
ON
`a_b`.`id_blessing`=`b`.`id_blessing`
LEFT JOIN `ability` as `a`
ON
`a_b`.`id_ability`=`a`.`id_ability`
WHERE
`b`.`id_blessing`=`g`.`id_blessing`
AND
`g`.`id_god`=`g_c`.`id_god`
AND
`c`.`id_character`=`g_c`.`id_character`
AND
`t`.`id_type`=`g`.`id_type`
GROUP BY `g`.`id_god`
UNION
SELECT `g`.`name` AS 'GOD',
`b`.`name` AS 'BLESSING',
`t`.`type`,
`s`.`name` AS 'ABILITY and SUSCEBTIBILITY',
COUNT(`g_c`.`id_god`) AS 'faithful(верующие)'
FROM `god` as `g`,
`type_god` AS `t`,
`character` as `c`,
`god_character` AS `g_c`,
`blessing` as `b`
LEFT JOIN `suscebtibility_blessing` AS `s_b`
ON
`s_b`.`id_blessing`=`b`.`id_blessing`
LEFT JOIN `suscebtibility` as `s`
ON
`s_b`.`id_suscebtibility`=`s`.`id_suscebtibility`
WHERE
`b`.`id_blessing`=`g`.`id_blessing`
AND
`g`.`id_god`=`g_c`.`id_god`
AND
`c`.`id_character`=`g_c`.`id_character`
AND
`t`.`id_type`=`g`.`id_type`
GROUP BY `g`.`id_god`;
10. Вывод героя с максимальным уровнем.
SELECT `c`.`id_character` ,
`c`.`name`,
`c`.`age`,`c`.`title`,
`r`.`name` AS 'RACE',
`heroes`.`level`
FROM `character` AS `c`, `heroes`,
`race` AS `r`
WHERE `c`.`id_character`=`heroes`.`id_character`
AND
`r`.`id_race`=`c`.`id_race`
GROUP BY `id_heroes` HAVING MAX(`level`)
ORDER BY level DESC
LIMIT 1;
Вывод.
База вполне может стать используемой у мастеров ролевых игр или разработчиков компьютерных игр, если, конечно, доработать ее и расширить. За нехваткой времени были не учтены некоторые нюансы.
Недостатки:
Отсутствуют триггеры, из-за чего …
…у персонажа может быть раса и клан из другого мира или он может верить в бога, из другого мира, а также правитель может быть также из другой вселенной;
Эта база не совсем предусмотрена для мира с высоким техническим уровнем, связанный с космосом;
Не хватает таблицы с характеристиками, такими как ЛОВКОСТЬ, ИНТЕЛЛЕКТ, СИЛА и др.
Еще хотелось бы сделать какую-нибудь зависимость силы способности с уровнем героя;
Таблица `rank` не имеет смысла;
И т.д.
