помогите со структурой таблиц

Духовность™

Продвинутый новичок
помогите со структурой таблиц

Привет.
Начинаю писать сайт для подачи бесплатных объявлений, интересует кто-нибудь из присутствующих занимался проектированием подобных систем, в частности структуры БД? Интересует практический опыт граблей.

Я начинаю с малого, планирую пока что реализовать два типа объявлений: куплю и продам. Сейчас мне не совсем ясно, нужно ли разграничивать эти два типа объявлений по отдельным таблицам или всё хранить в одной таблице?
 

Fortop

Новичок
а в чем разница между ними?

Как по мне, если объявления отличаются только по своим типам, то они вполне могут лежать в одной таблице
 

Духовность™

Продвинутый новичок
а в чем разница между ними?
в чем будет разница -- на текущий момент я не знаю, ибо пишу сам для себя этот проект. Подозреваю, что разница может сказаться в наличии свойств, таких как вес, цвет, количество. Т.е.

Продаю котов
вес: 20 кг
количество: 2 шт
цвет: серобуркозявчатый
цена: 100 руб

если мы делаем одну таблицу для двух типов объявлений, то для объявлений типа куплю подобного рода поля будут пустыми и не нужными.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
triumvirat
а вот и ни разу, человек вполне может хотеть купить 2х котов серого цвета не более 10Кг весом каждый... =)
 

Духовность™

Продвинутый новичок
c0dex
аргументированно.

но тем не менее - какие могут быть минусы хранения объявлений этих двух типов в одной таблице? И вообще, может есть смысл разбить структуру базы объявлений на такую, когда частные свойства объявлений будут находиться в отдельных таблицах? Пример:

таблица объявления adverts, общие свойства :
-----------------
ID | type | id_user | city | country | date | и т.д.


таблица свойства объявлений для недвижимости, частные свойства:
-----------------------------
ID | ID_advert | метраж | район | и т.д.

таблица свойства объявлений для продажи авто, частные свойства:
-----------------------------
ID | ID_advert | марка | год_выпуска | тип_авто | и т.д.
 

dimagolov

Новичок
triumvirat, по-моему ты путаешь сущности "объявление" и "товар". ты в начале определись, объявление кроме текста что будет содержать, а потом думай. я понимаю, что если тупо текст, то нужно делать модерацию/спам,мат-фильтрацию и т.п., но если цеплять атрибуты то может существенно усложниться процесс размещения объяв. да, и кроме того, ты лучше думай о политике размещений, т.е. кто и как часто и по сколько может публиковать объявления и как можно будет влиять на выдачу объявления на первой странице.

-~{}~ 04.05.10 11:02:

у.... ты хочешь объявления про все попало... каждый тип имеет свою специфику, в первую очередь набор стандартных полей и возможные справочники для них нужно очень хорошо продумывать.
 

Fortop

Новичок
id, msg, user_id, create_date, location_id, type_id

это то, что может быть связано с объявлением. Максимально гибко - максимально просто.
Поиск делать по телу msg каким-нибудь Sphinx
 

Духовность™

Продвинутый новичок
Максимально гибко - максимально просто.
http://www.olx.ru/ - видел? Там тоже "максимально просто" - просто текстовое для объявления и все. На все типы объявлений - работа, продажа,транспорт и т.д. Но это не максимально гибко! Нельзя юзать расширенный поиск - просто структура базы это не предполагает.

А вот на slando.ru ты при подаче объявления попадаешь на уточняющие характеристики: если ты продаешь квартиру, то там метраж надо заполнить, тип здания и прочие уточняющие свойства: http://www.slando.ru/post/?category_id=17189&type=1
а если продаешь авто, то нужно заполнить свойства, относящиеся к авто, такие как марка авто, цвет, год выпуска: http://www.slando.ru/post/?category_id=10107&type=1

Да, на данном этапе я за структуру
id, msg, user_id, create_date, location_id, type_id
но хочется смотреть в будущее и при успешном старте делать более уточняющие типы подачи объявлений.
 

Fortop

Новичок
Нельзя юзать расширенный поиск
Что может быть более расширенного чем морфологический-поиск?

но хочется смотреть в будущее и при успешном старте делать более уточняющие типы подачи объявлений.
Я бы порекомендовал посмотреть в сторону юзабилити.

Как часто конечный потребитель пользуется всей этой мутью в виде десятков флажков, дополнительных полей ввода и прочего?
Лично меня пользоваться этим не тянет, хотя и умею.

P.S. Формализация формы документа оправдана в бюрократизированной системе. Какой-нибудь там электронный документооборот, анкеты, каталоги и прочее.
Но ты же хочешь сделать сервис для обывателя - поэтому он должен быть максимально прост и доступен именно для него. А не для тебя.
 

Духовность™

Продвинутый новичок
Лично меня пользоваться этим не тянет, хотя и умею.
согласен, но вот на olx.ru ВСЕ в одном текстовом поле - это, ИМХО, перебор.

Ладно, я подумаю над всем выше написанным. Если кто ещё хочет что сказать - пишите.
 

Fortop

Новичок
теги сделай к объявлениям, вместо категорий и типов.
 

A1x

Новичок
если мы делаем одну таблицу для двух типов объявлений, то для объявлений типа куплю подобного рода поля будут пустыми и не нужными.
ну я не хочу сразу сделать сложную систему, главное создать расширяемую.
можно погуглить про "модель EAV" - как раз для таких случаев
 
Сверху