|
|
|
| Здраствуйте.
После длительного зубрения php, mysql и т.п. я впервые решил сделать какой-нибудь проект.
Выбор пал на объявления (для нашего маленького городка это самая тема), чтобы каждый желающий мог бесплатно его подать.
В общем сейчас у меня 4 таблицы. Проблема возникла с таблицей где хранятся объявления и с формой для добавления нового объявления.
Допустим, человек решил добавить объявление о том, что он хочет снять квартиру и идет по такому пути
[Недвижимость -> Квартиры -> форма для добавления объявления. ]
Он пишет объявление и указывает в форме тип (Продаю, сниму, сдам, меняю и т.п.) В нашем случае он выбирает тип - сниму.
Теперь если другой хочеть добавить объявление, например, о продаже машины и идет по такому пути
[Автомото -> Автомобили -> форма для добавления объявления. ]
Пишет объявление и выбирает тип. Но в разделе автомобили уже не должно быть таких типов как сдам, сниму
или, например,
[Работа -> Вакансии -> форма для добавления объявления. ]
где вообще не может быть типов которые были выше.
Вот из-за того, что все объявления разные, а таблица для объявлений одна, у меня получается такая загвоздка. Даже не знаю как правильно все спроектировать. Можно конечно в самом сообщении писать тип, но так не получится поиск, сортировка и т.п. действия. Если делать кучу таблиц, то наверное очень упадет производительность, да и самому будет сложно разобраться.
В общем, я в сметении и прошу совета у граммотных людей. Если есть ссылка, где показаны различные способы построения таких проектов, пожалуйста скиньте.
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Антоха
(29.07.2007 в 04:27)
| | Можно предусмотеть в таблице объявлений поле, которое будет содержать набор всех возможных типов "сдам", "сниму", "продам", "куплю", "познакомлюсь", "отдам в хорошие руки", "требуются" и т.п. А в таблице каталогов (Квартиры, Автомобили, Вакансии) предусмотреть тип каталога в зависимости от которого выводится та или иная комбинация типов объявлений.
Типы "сдам", "сниму", "продам", "куплю", "познакомлюсь", "отдам в хорошие руки", "требуются" можно оформить также в виде отдельной таблицы Типов и составить таблицу соотвествий первичных ключей таблицы Каталог и Типы (это удобно, если типов очень много и постоянно нужно будет вводить новые). | |
|
|
|
|
|
|
|
для: Антоха
(29.07.2007 в 04:27)
| | Не нужно бояться делать несколько таблиц - если, конечно, эти таблицы не будут копиями одной.
К примеру - делать отдельные таблицы для недвижимости, для авто и для работы - плохо. схема станет ненормализованной и работать с ней будет сущий кошмар. А для добавления новых разделов придется менять структуру БД.
А вот сделать таблицу разделов, таблицу типов объявлений, таблицу сооветствий типов - разделам - вполне приемлемо.
Не надо раньше времени думать о том, не упадет ли производительность. Как минимум, пока она не образовалась - падать нечему.
Можно обойтись без таблицы соответствий, но тогда придется соответствие описывать типом множества в таблице разделов - формально это нарушит одну из нормальных форм, а фактически - заставит вносить модификации в структуру БД при добавлении новых типов. Я бы не стал. | |
|
|
|
|
|
|
|
для: Trianon
(29.07.2007 в 11:59)
| | Все, сделал... Как я рад. Спасибо всем за помощь | |
|
|
|