Já bych to řešil třetí tabulkou přes kterou propojíte tabulku s žáky a tabulku s kroužky (přestě tak jak to je napsáno v příspěvku nademnou). Dám příklad. - máte 3 tabulky - v první jsou žáci (každý jednou) s unikátním ID - ve druhé tabulce máte seznam kroužku (každý je zde zase jednou a má unikátní ID) - do třetí tabulky uložíte ID žáka z první tabulky a ID kroužku ze druhé tabulky. Pokud žák navštěvuje více kroužků, vložíte pro daného žáka do této třetí dabulky další záznam. To ale nevadí protože vkládáte pouze jeho ID, údaje jako jméno nebo adresa budou pořád fyzicky v databázi uložené pouze jednou v první tabulce, takže když bude potřeba něco změnit, máte všechno na jednom místě. Myslím si že je i zbytečné mít podle kategorií kroužku 2 tabulky (pokud by jste to tak udělal, budete muset hlídat aby Vám v těchto dvou tabulkách nedošlo ke konfliktu PK pokud by jste to propojoval přes vazební tabulku jak jsem popisoval výše). Dal bych to všechno do jedné tabulky a pokud potřebujete mít rozdělení na jazykové, sportovní atd. kroužky, přidal bych do tabulky s kroužkama další sloupeček s ID skupiny. Uděláte si vedle další tabulku kde budou názvy těchto skupin a propojíte to přes relaci. Co se týká checkboxů tak s ASP.Net moc zkušenosti nemám, ale pokud bych to řešil ve winform aplikaci tak bych místo checkboxů použil listBox kam bych všechny dostupné kroužky načetl a ve vlastnostech se dá nastavit aby na každém řádku byl checkbox. Tím by se problém vyřešil. Možná by to stejně šlo řešit i v ASP.Net
|