powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД для доски объявлений (нормальная форма)
25 сообщений из 37, страница 1 из 2
Проектирование БД для доски объявлений (нормальная форма)
    #38588690
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Сегодня зарегистрировался в данном форуме, т.к. с недавнего времени начал разработку сайта Доска объявлений, и соответственно столкнулся с неизбежной и признаться интересной задачей - проектирование БД доски объявлений. Прогуглил куча статей про проектирование, про нормальнаые формы (1NF, 2NF, 3NF...), но оказывается самостоятельно все же сложновато. Как сказал мне один гуру, "если хочешь расти профессионально то бери задачу на 1 уровень выше того чем ты владеешь, ты же сейчас взял на 4-5 уровней выше )))"... Но тем не менее хотелось бы с Вашей помощью разобраться и спроектировать полноценную БД.

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

И так прошу профи по БД, не оставаться равнодушным к моей ситуации, буду премного благодарен если внесете свой вклад. Также будут благодарны десятки людей, думаю многих заинтересует решение данной задачи..
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38588694
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дополнительно прилагаю таблицу в xls файле.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38588741
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денисовичдополнительно прилагаю таблицу в xls файле.


Начнём с того, что это -- не таблица...


Это -- sheet Excel.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38588743
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что у тебя написано в колонке A - вот это должны быть таблицы.
Вот и создавай по одной.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38588748
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денисовичя не уверен что она на текущий момент в какой либо нормальной форме.
Для доски объявлений любая форма - нормальная.

ДенисовичВ связи с чем вопрос, что или какие действия я должен сделать чтобы она
пришла хотя бы в первую нормальную форму?
Программировать приложение для неё. Все нарушения ты тогда прочувствуешь на собственной шкуре:
1) Проблемы с выделением куска из строки - результат нарушения первой НФ.
2) Хитровывернутые группировки по строке - третья НФ шла лесом.
3) Замороченный UI, в который пользователи не врубаются - излишняя нормализация.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38588758
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivТо, что у тебя написано в колонке A - вот это должны быть таблицы.
Вот и создавай по одной.

Это как? Нпр., для Категории Автомобили с пробегом сделать одну таблицу, а для Новые автомобили другую?

Или создать таблицу

Категория
id_category | name
1 | Автомобили с пробегом
2 | Новые автомобили
3 | Мотоциклы и мототехника
4 | Грузовики

Марка
id_mark | name

1 | Acura
2 | Audi
3 | BMW
4 | Mersedes Benz

То в таком случае нужно ли будет создавать таблицы для остальных опций, типа Тип кузова, Двигатель, Коробка, Пробег и т.д.?
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38588763
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovДенисовичя не уверен что она на текущий момент в какой либо нормальной форме.
Для доски объявлений любая форма - нормальная.

ДенисовичВ связи с чем вопрос, что или какие действия я должен сделать чтобы она
пришла хотя бы в первую нормальную форму?
Программировать приложение для неё. Все нарушения ты тогда прочувствуешь на собственной шкуре:
1) Проблемы с выделением куска из строки - результат нарушения первой НФ.
2) Хитровывернутые группировки по строке - третья НФ шла лесом.
3) Замороченный UI, в который пользователи не врубаются - излишняя нормализация.


Вы правильно сказали, было бы куда проще вникнуть... Но я и толком не программирую ни на чем..((
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38588787
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДенисовичВы правильно сказали, было бы куда проще вникнуть... Но я и толком не
программирую ни на чем..((
Т.е. ты хочешь спроектировать БД, а мучается с ней потом пусть кто-нибудь другой? Не, так
не пойдёт...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38588798
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Неет, если бы я хотел кому то передать на программирование, я бы тогда и не стал сам БД проектировать, а отдал бы все целиком кому то кто умеет это делать. Цель именно в том, чтобы пройти самому весь путь. На данное время у меня готов макет, рисовал сам с нуля, прям учился и рисовал. Ушло где то 2 месяца. Толком то и не знал я фотошоп. Далее взялся за верстку, учился и верстал, но когда сверстал частично главную страницу и дошел до формы поиска с фильтрами/зависимыми полями как на авито, я понял, что сделал ошибку начав верстку, не продумав БД. Поэтому сейчас я на пороге проектирования структуры БД. После сам лично буду верстать/кодировать+на CMS натягивать.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38588957
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДенисовичMasterZivТо, что у тебя написано в колонке A - вот это должны быть таблицы.
Вот и создавай по одной.

Это как? Нпр., для Категории Автомобили с пробегом сделать одну таблицу, а для Новые автомобили другую?

Или создать таблицу

Категория
id_category | name
1 | Автомобили с пробегом
2 | Новые автомобили
3 | Мотоциклы и мототехника
4 | Грузовики

Марка
id_mark | name

1 | Acura
2 | Audi
3 | BMW
4 | Mersedes Benz

То в таком случае нужно ли будет создавать таблицы для остальных опций, типа Тип кузова, Двигатель, Коробка, Пробег и т.д.?
Немного не с того начал проектировать БД.
Прежде всего надо определиться что является основной единицей обработки информации. Думается мне, что для доски объявлений - это объявление. То есть прежде всего необходима таблица объявлений.
Далее, какими свойствами обладает основная единица обработки информации. Объявление должно содержать информацию о предмете, причина подачи объявления (покупка, продажа, аренда), контактные данные (смысл объявления без указания контактов теряется, ибо тогда объявление становится выставочным экземпляром - только смотреть на него можно).
Ну а дальше, уже подробней расписывать свойства выставляемых предметов, создавать таблички аналогичные вышенаписанным.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38589625
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это как? Нпр., для Категории Автомобили с пробегом сделать одну таблицу, а для Новые автомобили другую?



Да
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38589842
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКатегория
id_category | name
1 | Автомобили с пробегом
2 | Новые автомобили
3 | Мотоциклы и мототехника
4 | ГрузовикиИдиотство. О пробеге (т.е. о новизне) должен говорить справочник пробегов(типа как на фотке). Сделать пункт "0-50км".
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590722
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЭто как? Нпр., для Категории Автомобили с пробегом сделать одну таблицу, а для Новые автомобили другую?
Да
Зачем?
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590864
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr.Fontaine,

блин, какая то огроменная таблица получается...))) ща буду попорядку грузить сюда
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590865
ScarferNV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Определи для начала, какие свойства (поля) должно содержать объявление. Затем определи, свойство должно быть четко регламентировано или может содержать любое значение. Если четко регламентировано, то для этого свойства создавай справочник, отдельную таблицу.
Получается объявление с множеством столбцов, какие-то поля это вторичные ключи на справочники, какие-то поля имеют произвольное значение.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590881
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица регионов и категорий с подкатегориями
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590888
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опциональные таблицы
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590889
ScarferNV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем ты делишь автомобили на новые или нет? Опредили как просто - Автомобили. А новые или нет будешь в программе определять по признакам.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590894
ScarferNV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблицу Year я бы не стал создавать. Год можно подставлять из интерфейса, выбор из списка.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590903
ScarferNV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Города с регионами можно в одну таблицу поместить. Просто список городов и регионов с уникальным ID.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590918
AO_MMM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivДенисовичЭто как? Нпр., для Категории Автомобили с пробегом сделать одну таблицу, а для Новые автомобили другую?

Да

Интересная мысль!
Значит синие автомобили мы будем хранить в одной таблице, а зелёные - в другой ?
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590919
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScarferNV,

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

И еще, в таблице где идут модели авто, я не стал создавать поля для подкатегорий "Баги", "Вездеходы", "Картинг" и т.д., т.к. для них дальше подкатегории не существует.


жалко что форуме нет возможности редактировать опубликованное сообщение, а то подправил чуток бы чтобы понятнее всем было!
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590934
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScarferNV,

ну на авито так и идет разделение - Авто с пробегом и Новые авто, поэтому я и подумал, что для каждого нужно отдельно заводить в БД. А разве это разделение возможно будет потом на этапе программирования сделать?

Таблица Year - уберем тогда. Я думал каждый столбец, значения которого являются составным, нужно выносить в отдельный справочник...


Сейчас подумаю как сделать список городов и регионов в одной таблице.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590952
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот такое объединение таблиц Город и Региона получается

мм.. в такой форме я ниче не нарушаю, типа 1NF, 2NF или 3NF?
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590955
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денисовичну на авито так и идет разделение - Авто с пробегом и Новые авто, поэтому я и подумал, что для каждого нужно отдельно заводить в БД. А разве это разделение возможно будет потом на этапе программирования сделать?
Код: sql
1.
2.
3.
select *
  from cars
 where is_new = 1;



Прям не топик, а параолимпиада по проектированию БД...
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД для доски объявлений (нормальная форма)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]