Помогите исправить ошибки и
правильно организовать небольшую базу, чтобы понять логику процесса.
Исходные данные:
название лотереи (например, лото Мега-Сена)
континент (например, Северная Америка)
страна (например, США)
название валюты (например, доллар)
символ валюты (например, $ или USD)
минимальный джекпот (например, 10000000 - десять миллионов)
рекордный джекпот (например, 100000000 - сто миллионов - данных может не быть, поле останется пустым)
потенциальный джекпот (например, 10000000 - десять миллионов - данных может не быть, поле останется пустым)
следующий джекпот (например, 100000000 - сто миллионов)
дни проведения (понедельник, вт, ср, чт, пт, сб или воскресенье)
время проведения (наример, в 14:00)
дата проведения (10 августа 2012)
результат розыгрыша (например, 5,6,4,2,4,5 и бонусные номера 10 и 12 или 5,6,4,2,4 и только один бонусный номер 10, везде формат лотерей разный)Логика у меня была такой:
1. Создаем для континентов таблицу. Континенты внесу сразу в базу, редактироваться они не будут.
2. Страны - то же самое, создаем отдельно таблицу, данные внесу сразу, редактироваться не будут.
В этой таблице делаю привязку к континенту по id.
3. Для валюты - отдельно таблицу:
- название валюты
- символ валюты
Так как планирую с админки добавлять, убирать валюту или опубликовывать, также добавил поля:
- published
- дату создания валюты
- кем создана (ну, админ или другой юзверь)
- дата изменений (пишу для Joomla, там есть такой функционал)
- кем внесены изменения
4. Следующая таблица - дни недели.
- ид дня
- название (понедельник, вторник и т.д.)
5. Таблица по лотереям (лотереи будут добавляться или убираться с админки)
- ид лотереи
- название
- ид континента
- ид страны
- ид валюты
- минимальный джекпот (если есть данные)
- рекордный джекпот джекпот (если есть данные)
- потенциальный или другой джекпот джекпот (если есть данные)
- следующий джекпот (если есть данные)
- опубликована или не опубликована (1 или 0)
и стандарт когда создана, кем создана, когда внесены изменения и кем внесены изменения
6. Шестая таблица - дни розыгрыша. У некоторых три розыгрыша в неделю, у некоторых один раз в неделю.
- ид розыгрыша
- ид лотереи
- ид дня
- время проведения в этот день
7. И последняя таблица - результаты проведенных лотерей
- ид результата
- ид лотереи
- дата розыгрыша
- результат розыгрыша (здесь может быть что угодно, я в том плане, у некоторых 6 номеро, у некоторых лотерей 6 основных и два дополнительных шара, но не более 8 всего)
Из всего написанного, вот что я накуралесил:
CREATE TABLE `#__continents` (
`continent_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`continent_name` char(64),
PRIMARY KEY(`continent_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='Used to store continents';
CREATE TABLE `#__countries` (
`country_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`country_name` char(64),
`id_continent` int(10),
PRIMARY KEY(`country_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='Used to store countries';
CREATE TABLE `#__currencies` (
`currency_id` smallint(1) UNSIGNED NOT NULL AUTO_INCREMENT,
`currency_name` char(64),
`currency_symbol` char(4),
`published` tinyint(1) NOT NULL DEFAULT '1',
`created_on` datetime NOT NULL default '0000-00-00 00:00:00',
`created_by` int(11) NOT NULL DEFAULT '0',
`modified_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified_by` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`currency_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='Used to store currencies';
CREATE TABLE `#__days` (
`day_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`day_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='Used to store days';
CREATE TABLE `#__lotteries` (
`lottery_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL DEFAULT '',
`continent_id` int(10),
`country_id` int(10),
`currency_id` int(11),
`min_jackpot` int(12),
`max_jackpot` int(12),
`other_jackpot` int(12),
`next_jackpot` int(12),
`published` tinyint(1) NOT NULL DEFAULT '1',
`created_on` datetime NOT NULL default '0000-00-00 00:00:00',
`created_by` int(11) NOT NULL DEFAULT '0',
`modified_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified_by` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`lottery_id`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='Used to store lotteirs';
CREATE TABLE `#__drawday` (
`drawday_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`lottery_id` int(10),
`day_id` int(10),
`drawtime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'
PRIMARY KEY (`drawday_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='Used to store days of draws';
CREATE TABLE `#__results` (
`result_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`lottery_id` int(10),
`drawdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`drawresult` varchar(255) NOT NULL,
PRIMARY KEY (`result_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 COMMENT='Used to store results of draws';
Подскажите, правильно ли организовал структуру или есть ошибки?
И по полям правильно ли всё определил для создания таблиц?