БД для доски объявлений

HunterNNM
На сайте с 28.01.2010
Offline
43
734

Всем доброго времени суток! Поставили задачу реализовать скрипт доски объявлений. Сам код не проблема, вот задумался над реализацией БД. Вопрос к мастерам: как лучше сделать структуру. Хочу сделать так: таблица ads, в ней столбцы id, text, datetime, id_author, id_city, visible, type, где с помощью id_author будет браться информация об авторе(ник, ссылка и тп), id_city - таблица с городами(регион, название, район), а изображения будут браться из таблицы img с полями id, id_ads, img. Т.е. структура примерно такая:

Ads: id, text, datetime, id_author, id_city, visible, type, category

Author: id, name, nickname, password, email

City: id, name

Img: id, id_ads

Category: id, name

Не слишком ли будет большая нагрузка из-за такой вложенности и может можно как-то реализовать лучше, с меньшей нагрузкой? заранее спасибо за ответ!

izbushka
На сайте с 08.06.2007
Offline
110
#1

В целом структура правильная.

Читайте про нормализацию отношений в БД.

IL
На сайте с 20.04.2007
Offline
435
#2
HunterNNM:
Сам код не проблема, вот задумался над реализацией БД.

Ход мыслей правильный, база "нормальная" (точнее, нормализованная).

Естественно, можно "повредничать" - мол автор живёт в одном городе (не указан город, кстати у пользователя.. чтоб по умолчанию поле в объявлении заполнять), а объявление может подать в другой.. но так и нужно ведь.

В общем, для первого варианта пойдёт, а дальше - по ходу видно будет.

К изображению, возможно, описание нужно.. флаг "удалёно" и тд.

В Ads статус тоже добавить (visible - хорошо.. мол черновик/опубликовано).. вместо удаления, возможно, есть смысл помечать удалённым. Может ещё какой статус появится (видно только для зарегистрированных.. или только для своего города.. и тд)

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
HunterNNM
На сайте с 28.01.2010
Offline
43
#3

Я тут не отобразил все столбцы, их чуть больше... Мне интересно было мнение по поводу такой реализации. Я обычно писал код только под существующие БД, а тут приходится самому делать... Боюсь сделать что-то не так:-) Спасибо за ответы!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий