Wollte nur mal hören, wie ihr das aufbauen würdet.
Auch so mit den POLLS als starke Entität, und jeweils 3 schwache entitäten (da ich die poll_votes nicht als HABTM machen kann aufgrund der komplexität)?
Überlegungen zum DB-Aufbau:

- Code: Alles auswählen
- --
-- Tabellenstruktur für Tabelle `tel_polls`
--
CREATE TABLE IF NOT EXISTS `tel_polls` (
`id` int(10) unsigned NOT NULL auto_increment,
`user_id` int(10) unsigned default '0' COMMENT 'pollCreator',
`name` varchar(64) collate utf8_unicode_ci NOT NULL default '',
`alias` varchar(64) collate utf8_unicode_ci NOT NULL COMMENT 'Inflector::slug()',
`layout` tinyint(2) unsigned NOT NULL default '0' COMMENT '0=default',
`active` tinyint(1) NOT NULL default '0',
`edit` tinyint(1) NOT NULL default '0',
`access_vote` tinyint(1) NOT NULL default '0' COMMENT 'validPollUser/public',
`allow_vote` tinyint(1) NOT NULL default '0' COMMENT 'restricted/all',
`multiple` tinyint(2) unsigned NOT NULL default '0' COMMENT '0=onlyOnce,1..x=AmountDifferentVotes',
`result_details` tinyint(2) NOT NULL default '0' COMMENT 'result+names, result annon., memberInternal',
`result_show` tinyint(2) NOT NULL default '0' COMMENT 'immediately/afterClosed',
`start_date` date NOT NULL COMMENT 'none=insertToday',
`end_date` date NOT NULL COMMENT 'none=forever running',
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `tel_poll_options`
--
CREATE TABLE IF NOT EXISTS `tel_poll_options` (
`id` int(10) unsigned NOT NULL auto_increment,
`poll_id` int(10) unsigned NOT NULL default '0',
`sort` int(10) unsigned NOT NULL default '0',
`name` varchar(40) collate utf8_unicode_ci NOT NULL default '',
`descr` varchar(255) collate utf8_unicode_ci NOT NULL default '' COMMENT 'details',
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `tel_poll_restricts`
--
CREATE TABLE IF NOT EXISTS `tel_poll_restricts` (
`id` int(10) unsigned NOT NULL auto_increment,
`user_id` int(10) unsigned NOT NULL default '0',
`role_id` int(10) unsigned NOT NULL default '0',
`code` varchar(40) collate utf8_unicode_ci NOT NULL default '',
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `tel_poll_votes`
--
CREATE TABLE IF NOT EXISTS `tel_poll_votes` (
`id` int(10) unsigned NOT NULL auto_increment,
`poll_id` int(10) unsigned NOT NULL default '0',
`poll_option_id` int(10) unsigned NOT NULL default '0',
`user_id` int(10) unsigned NOT NULL default '0',
`code` varchar(40) collate utf8_unicode_ci NOT NULL default '',
`voter` varchar(40) collate utf8_unicode_ci NOT NULL default '' COMMENT 'name if code is used',
`details` varchar(255) collate utf8_unicode_ci NOT NULL default '' COMMENT 'voter might want to add some text',
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;