powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД для доски объявлений (нормальная форма)
37 сообщений из 37, показаны все 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
Проектирование БД для доски объявлений (нормальная форма)
    #38590965
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rockclimber,

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

ну ребята, я же писал, что тока осваиваю это направление. Да и многим, не тока мне, уверен будет интересно решение.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38590969
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денисовичrockclimber,

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

мм.. в такой форме я ниче не нарушаю, типа 1NF, 2NF или 3NF?

Сделай такую таблицу

Regions:
ID | Region | ID_R

Где, ID_R это внешний ключ, а ID первичный.

Получается ерархия.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38593471
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AO_MMMMasterZivпропущено...


Да

Интересная мысль!
Значит синие автомобили мы будем хранить в одной таблице, а зелёные - в другой ?

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

мм.. в такой форме я ниче не нарушаю, типа 1NF, 2NF или 3NF?

Сделай такую таблицу

Regions:
ID | Region | ID_R

Где, ID_R это внешний ключ, а ID первичный.

Получается ерархия.

Для ID_R же нужна еще отдельная таблица значений Городов? Тогда получается все равно две таблицы.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38596006
ScarferNV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДенисовичДля ID_R же нужна еще отдельная таблица значений Городов? Тогда получается все равно две таблицы.
Нет, внешний ключ может идти от первичного ключа в рамках одной таблицы. С регионами этот вариант можно сделать.
Представь, что вместо таблицы с регионами у тебя таблица сотрудников какой-то фирмы и надо построить организационную структуру этой фирмы. Допустим директор имеет заместителей, заместили подчиненных и так далее.. Так вот, это все делается с помощью одной таблицы. С регионами практически тоже самое.
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38596285
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кажется я понял вас. Вот в это виде кажется в одну таблицу все вмещается
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38596542
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денисович, о да! Это ближе к истине.
Теперь посмотри, у тебя в region_name всякая каша написана: и города и районы и станции метро. Чтобы это малость систематизировать можно добавить ещё один столбец region_type, в котором будешь уточнять что обозначет текст в region_name
id region_name id_r region_type1 Москва 0 12 Ясенево 1 33 Беляево 1 34 Волгоград 0 15 Кировский 4 2
Описание region_type храним в отдельной табличке
id type_name short_name1 Город г.2 район р-н3 станция метро ст.м.
теперь в качестве области расположения можно указывать не только районы и станции метро, но и остановки общественного транспорта, в том числе и скоростного трамвая для Волгограда, пристани, прочие топонимы
то есть если внести в описание типов строку
4 остановка автобуса ост.
то в основную таблицу можно записать
6 Мамаев Курган 5
И при указании в таблице объявлений в поле region_id=6 можно получить подробное место расположение: г.Волгоград, р-н Кировксий, ост.Мамаев Курган
и что интересно, храним всю информацию в одной таблице
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38596904
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДенисовичЗдравствуйте!

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

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

И так прошу профи по БД, не оставаться равнодушным к моей ситуации, буду премного благодарен если внесете свой вклад. Также будут благодарны десятки людей, думаю многих заинтересует решение данной задачи..
Лучше сначала использовать М2
13577413
А уже потом переходить к "таблицам".
...
Рейтинг: 0 / 0
Проектирование БД для доски объявлений (нормальная форма)
    #38604854
Денисович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем делал делал, получилось следующее ))

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


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