SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.02.2013 17:37:02

Вася
Участник
Зарегистрирован: 21.02.2013
Сообщений: 6

Подскажите про глубину нормализации

Привет. Хочу уточнить кое-что чего я не понимаю про нормализацию.

Вот допустим: есть таблица с фирмами, у каждой фирмы может быть указан город. Тут как я понимаю мы просто делаем в таблице фирм поле city_id и отдельно делаем таблицу городов, в которой будут поля id и название города.

Теперь что я не понимаю: опять же таблица с фирмами, у каждой фирмы могут быть, если назвать это общим словом "новости".
На деле они могут добавлять новости, информацию о скидках и информацию о мероприятиях. Фактически это всё новости.

Вопрос: следует создать одну таблицу news в которой будут поля id, тип новости (новость, скидка или мероприятие), и поля непосредственно под информацию; или же надо создать три разных таблицы с разными названиями, например news, rebates, action в которых будет только id и поля под информацию?

Спасибо.

Неактивен

 

#2 21.02.2013 18:25:02

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Подскажите про глубину нормализации

Ответа на все случаи нет, все зависит от задачи.

В данном случае у вас будут задачи, типа, выбрать все новости данной фирмы, т.е. выборка содержит все типы новостей, следовательно, логично делать одну таблицу.

Неактивен

 

#3 21.02.2013 18:35:54

Вася
Участник
Зарегистрирован: 21.02.2013
Сообщений: 6

Re: Подскажите про глубину нормализации

Задача – показывать на одной странице 3 столбика в каждом из которых свой тип. И тут уже не знаю как лучше. 3 таблицы или 1 но прокручивать через 3 разных foreach с разными if-ами.

Неактивен

 

#4 21.02.2013 19:54:08

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Подскажите про глубину нормализации

Если всегда нужен только один из типов, то делайте 3 таблицы.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson