Далеко не в любом учебнике. Я пока и сам склоняюсь к этому варианту (привык работать с графами), но пока хочу разобраться, лучший ли это вариант, или в MySQL, с которым я только начинаю знакомиться, есть варианты получше.
Nachtvolk да, и правда, "есть в любом нормальном учебнике по sql, где есть описание нормализации данных" - так вроде будет лучше встречал также реализацию отношения несколько-к-нескольким, когда возможные варианты перечисляются через запятую в одном из полей. Но подобный вариант подходит только если ожидается не так много возможных связей + все возможные связи уже были загружены в программу и парсятся в коде, т.к. получить связанные объекты через SQL JOIN не представляется возможным.
Сразу вопрос напрашивается о ссылке или хотя бы названии такого учебника. Хотя сейчас мне наверное важней найти грамотный учебник по MySQL. В тех, которые у меня есть, описывается MySQL как реализация SQL, мне же родней и понятней, когда всё описывается через технологию и теорию БД, т.е. БД->SQL->MySQL. В точку! Я использовал этот вариант на последнем сайте, требовалось связать всего две небольших таблицы (150 и 30 записей), а времени было мало. Только я использовал не запятую, а _. И юзал через LIKE (в качестве ID использовались уникальные имена (в прошлом - имена файлов)). Но вариант однозначно тупиковый при росте базы. И при использовании жутко неудобный Внешние ключи доступны только в InnoDB? Или есть другие практичные варианты ограничения целостности и ввода?
>Внешние ключи доступны только в InnoDB? Да >есть другие практичные варианты ограничения целостности и ввода? Триггеры >Сразу вопрос напрашивается о ссылке или хотя бы названии такого учебника. Ну для начала... а гугл пробовали? Там как бы не SQL, а русским языком расписано что это такое. Про нормальную форму тоже упомянули, это ответ "как правильнее". А уж ответ на вопрос "как мне денормализовать мою базу" может быть дан исключительно по каждому конкретному случаю отдельно.
Вообще-то на 99,99% вопросов на этом форуме можно ответить этой фразой. Добивает уже. Я пишу сюда, чтобы узнать мнение реальных людей с реальным опытом, которые чего-то добились. К такому мнению я прислушаюсь обязательно, оно для меня ценно. Это относится и к мнению по учебнику. Я могу десятки учебников перерыть благодаря Гуглу и потратить кучу времени, пока знающий человек не укажет на тот, на который стоит обратить внимание. Зачем бегать по граблям?
Отличная логика. Т.е. гугл ищет где угодно, но никак не по кучам блогов, форумов и статей, где реальные люди с реальным опытом из года в год повторяют одно и тоже. Учебник ему, угу. "Посоветуйте книгу, что бы прочесть и стать умным".
Nachtvolk могу посоветовать книгу для начинающих "Самоучитель MySQL 5" Кузнецова-Симдянова от BHV http://www.ozon.ru/context/detail/id/2631565/ вроде там видел простейшие примеры взаимодействия многие-ко-многим на примере книг и авторов.