- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Имеем:
Таблицу основных элементов каталога (например, породы деревьев).
Таблицу дополнительных элементов (например, названия насекомых-вредителей этих деревьев).
Таблицу источников информации, из которых взяты данные о вредителях для каждого дерева.
Пример:
Дерево №1.
Его вредители №3 (источник информации №6),
№5 (источник информации №6),
№7 (источники информации №6, №7, №22).
Дерево №2.
Его вредители №3 (источники информации №6, №7),
№4 (источник информации №20),
№18 (источники информации №2, №8, №19).
Нужно:
Вывести данные для любого дерева примерно в том виде, как это указано в примере выше.
Вопрос:
Как грамотно хранить данные в БД? Ясно, что можно, например, в поле "Вредители" первой таблицы проставить Id этих самых вредителей, но как туда еще для каждого из них впихнуть источники информации (напоминаю, что источники будут разные для разных деревьев/вредителей) -- никак не дойду.
Прошу подсказать, если кто могет...
3 таблицы: деревья, вредители, источники
+2 таблицы связей: вредитель-дерево, источник-вредитель-дерево. Здесь только id-шники элементов.
Ну-у-у, у каждого дерева несколько вредителей, у вредителей по несколько источников. Следовательно, нужны связи:
Дерево - вредитель
Вредитель - источник
БД:
Таблица1: деревья
Таблица2: вредители
Таблица3: источники
Таблица4: связь дерево-вредитель
Таблица5: связь вредитель-источник
x-mobi.ru добавил 30.03.2009 в 02:11
источник-вредитель-дерево
А зачем тут "дерево"? Помоему лишнее
x-mobi.ru добавил 30.03.2009 в 02:21
Asar, на будущее запомните, если у вас в БД планируется хранение двух типов объектов, при этом, первый может включать в себя несколько вторых, то - все, однозначно нужна таблица связей :)
А зачем тут "дерево"? Помоему лишнее
Для каждого дерева источник вредителей может быть разным, поэтому добавил его в таблицу. Прото подумал, что есть книга о берёзах, там рассказывается об ужасном лиственном вредителе. И есть книга о липах, там тоже о нём рассказывается, но применительно уже к липам. Могут быть разные способы заражения, симптомы и лечение.
Asar, в таблицах связей не забудьте сделать уникальный составной индекс по всем полям.
Быдлокодеры понабежали.
Словосочетание Foreign Key вам о чем нибудь говорит?
В данном случае если для каждого дерева может быть несколько вредителей, а каждый вредитель может быть только у одного дерева, т.е. имеет место связь many-to-one, то достаточно в таблице вредителей сделать ключик tree_id с отсылкой на таблицу пород дерева.
Поскольку вряд ли один вредитель вредит одному дереву, но при этом для каждой породы дерева свой источник о каждом вредителе (связь many-to-many-by-one), то три таблицы - деревья, источники и вредители, в таблице вредители два внешних ключа на таблицу пород и таблицу источников, при этом имя вредителя и прочая связанная информация может дублироваться, но группа (имя вредителя, ид источника, ид породы) будет уникальная, можно прям constraint явно указать. Итого 3 таблицы в любом случае.
Ну а если связь many-to-many, то конечно нужна доп. таблица
neolord, а тут как бэ и говорится о том, что связи везде "многие ко многим".
neolord, а тут как бэ и говорится о том, что связи везде "многие ко многим".
тут как бэ и отвечается сразу, что нифига не многие-ко-многим...
тут как бэ и отвечается сразу, что нифига не многие-ко-многим...
Есть деревья, есть вредители, есть источники информации. Один вредитель может быть у нескольких деревьев - это вроде логично. Об одном вредителе могут написать несколько источников для каждого дерева свой - это я вроде объяснил ранее. У дерева может быть несколько вредителей, вроде тоже вполне логично. Отсюда получаем связи:
Деревья-вредители: многие ко многим, т.к. у дерева много вредителей, вредитель жрёт несколько деревьев.
Вредители-источники: многие ко многим, т.к. об одном вредителе написано может быть несколько источников для каждого дерева свой. Один источник может описать несколько вредителей.
Да, связь будет множественная, в том и сложность. Т.е. могут быть совершенно разные сочетания дерево/вредитель/источник...
Спасибо всем ответившим, пойду пробовать/разбираться...
тут как бэ и отвечается сразу, что нифига не многие-ко-многим
Читайте внимательнее:
книга о берёзах, там рассказывается об ужасном лиственном вредителе. И есть книга о липах, там тоже о нём рассказывается
Т.е. один вредитель также может несколько деревьев жрать, ну и у деврева несколько врежителей. Классический случай связи многие ко многим.