|
|
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Сегодня зарегистрировался в данном форуме, т.к. с недавнего времени начал разработку сайта Доска объявлений, и соответственно столкнулся с неизбежной и признаться интересной задачей - проектирование БД доски объявлений. Прогуглил куча статей про проектирование, про нормальнаые формы (1NF, 2NF, 3NF...), но оказывается самостоятельно все же сложновато. Как сказал мне один гуру, "если хочешь расти профессионально то бери задачу на 1 уровень выше того чем ты владеешь, ты же сейчас взял на 4-5 уровней выше )))"... Но тем не менее хотелось бы с Вашей помощью разобраться и спроектировать полноценную БД. И так задача: хочу разработать структуру бд доски объявлений как на авито.ру. Что у меня сейчас есть - таблица с данными о транспортных средств. Но я не уверен что она на текущий момент в какой либо нормальной форме. В связи с чем вопрос, что или какие действия я должен сделать чтобы она пришла хотя бы в первую нормальную форму? Предполагаю тут нужно поэтапно оптимизировать таблицы, т.к. он громоздкий, думаю даже для гуру спецов по БД будет сложновато сходу привести его в третью нормальную форму... И так прошу профи по БД, не оставаться равнодушным к моей ситуации, буду премного благодарен если внесете свой вклад. Также будут благодарны десятки людей, думаю многих заинтересует решение данной задачи.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 19:53 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
дополнительно прилагаю таблицу в xls файле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 19:55 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Денисовичдополнительно прилагаю таблицу в xls файле. Начнём с того, что это -- не таблица... Это -- sheet Excel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 20:34 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
То, что у тебя написано в колонке A - вот это должны быть таблицы. Вот и создавай по одной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 20:36 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Денисовичя не уверен что она на текущий момент в какой либо нормальной форме. Для доски объявлений любая форма - нормальная. ДенисовичВ связи с чем вопрос, что или какие действия я должен сделать чтобы она пришла хотя бы в первую нормальную форму? Программировать приложение для неё. Все нарушения ты тогда прочувствуешь на собственной шкуре: 1) Проблемы с выделением куска из строки - результат нарушения первой НФ. 2) Хитровывернутые группировки по строке - третья НФ шла лесом. 3) Замороченный UI, в который пользователи не врубаются - излишняя нормализация. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 20:42 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
MasterZivТо, что у тебя написано в колонке A - вот это должны быть таблицы. Вот и создавай по одной. Это как? Нпр., для Категории Автомобили с пробегом сделать одну таблицу, а для Новые автомобили другую? Или создать таблицу Категория id_category | name 1 | Автомобили с пробегом 2 | Новые автомобили 3 | Мотоциклы и мототехника 4 | Грузовики Марка id_mark | name 1 | Acura 2 | Audi 3 | BMW 4 | Mersedes Benz То в таком случае нужно ли будет создавать таблицы для остальных опций, типа Тип кузова, Двигатель, Коробка, Пробег и т.д.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 21:01 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovДенисовичя не уверен что она на текущий момент в какой либо нормальной форме. Для доски объявлений любая форма - нормальная. ДенисовичВ связи с чем вопрос, что или какие действия я должен сделать чтобы она пришла хотя бы в первую нормальную форму? Программировать приложение для неё. Все нарушения ты тогда прочувствуешь на собственной шкуре: 1) Проблемы с выделением куска из строки - результат нарушения первой НФ. 2) Хитровывернутые группировки по строке - третья НФ шла лесом. 3) Замороченный UI, в который пользователи не врубаются - излишняя нормализация. Вы правильно сказали, было бы куда проще вникнуть... Но я и толком не программирую ни на чем..(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 21:03 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
ДенисовичВы правильно сказали, было бы куда проще вникнуть... Но я и толком не программирую ни на чем..(( Т.е. ты хочешь спроектировать БД, а мучается с ней потом пусть кто-нибудь другой? Не, так не пойдёт... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 21:25 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Неет, если бы я хотел кому то передать на программирование, я бы тогда и не стал сам БД проектировать, а отдал бы все целиком кому то кто умеет это делать. Цель именно в том, чтобы пройти самому весь путь. На данное время у меня готов макет, рисовал сам с нуля, прям учился и рисовал. Ушло где то 2 месяца. Толком то и не знал я фотошоп. Далее взялся за верстку, учился и верстал, но когда сверстал частично главную страницу и дошел до формы поиска с фильтрами/зависимыми полями как на авито, я понял, что сделал ошибку начав верстку, не продумав БД. Поэтому сейчас я на пороге проектирования структуры БД. После сам лично буду верстать/кодировать+на CMS натягивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 21:44 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
ДенисовичMasterZivТо, что у тебя написано в колонке A - вот это должны быть таблицы. Вот и создавай по одной. Это как? Нпр., для Категории Автомобили с пробегом сделать одну таблицу, а для Новые автомобили другую? Или создать таблицу Категория id_category | name 1 | Автомобили с пробегом 2 | Новые автомобили 3 | Мотоциклы и мототехника 4 | Грузовики Марка id_mark | name 1 | Acura 2 | Audi 3 | BMW 4 | Mersedes Benz То в таком случае нужно ли будет создавать таблицы для остальных опций, типа Тип кузова, Двигатель, Коробка, Пробег и т.д.? Немного не с того начал проектировать БД. Прежде всего надо определиться что является основной единицей обработки информации. Думается мне, что для доски объявлений - это объявление. То есть прежде всего необходима таблица объявлений. Далее, какими свойствами обладает основная единица обработки информации. Объявление должно содержать информацию о предмете, причина подачи объявления (покупка, продажа, аренда), контактные данные (смысл объявления без указания контактов теряется, ибо тогда объявление становится выставочным экземпляром - только смотреть на него можно). Ну а дальше, уже подробней расписывать свойства выставляемых предметов, создавать таблички аналогичные вышенаписанным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2014, 07:03 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Это как? Нпр., для Категории Автомобили с пробегом сделать одну таблицу, а для Новые автомобили другую? Да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2014, 15:50 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
авторКатегория id_category | name 1 | Автомобили с пробегом 2 | Новые автомобили 3 | Мотоциклы и мототехника 4 | ГрузовикиИдиотство. О пробеге (т.е. о новизне) должен говорить справочник пробегов(типа как на фотке). Сделать пункт "0-50км". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2014, 18:13 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто как? Нпр., для Категории Автомобили с пробегом сделать одну таблицу, а для Новые автомобили другую? Да Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:08 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Mr.Fontaine, блин, какая то огроменная таблица получается...))) ща буду попорядку грузить сюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:14 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Определи для начала, какие свойства (поля) должно содержать объявление. Затем определи, свойство должно быть четко регламентировано или может содержать любое значение. Если четко регламентировано, то для этого свойства создавай справочник, отдельную таблицу. Получается объявление с множеством столбцов, какие-то поля это вторичные ключи на справочники, какие-то поля имеют произвольное значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:15 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Таблица регионов и категорий с подкатегориями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:19 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Опциональные таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:22 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Зачем ты делишь автомобили на новые или нет? Опредили как просто - Автомобили. А новые или нет будешь в программе определять по признакам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:23 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Таблицу Year я бы не стал создавать. Год можно подставлять из интерфейса, выбор из списка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:25 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Города с регионами можно в одну таблицу поместить. Просто список городов и регионов с уникальным ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:29 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
MasterZivДенисовичЭто как? Нпр., для Категории Автомобили с пробегом сделать одну таблицу, а для Новые автомобили другую? Да Интересная мысль! Значит синие автомобили мы будем хранить в одной таблице, а зелёные - в другой ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:36 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
ScarferNV, На скрине выше (где длинная таблица), я определил поля, которые должен содержать объявление. Ниже на скринах, уже таблицы связанные с каждым полем таблицы объявления, то есть справочник к таблице объявлений. Ну в правильном ли я направлении иду? И еще, в таблице где идут модели авто, я не стал создавать поля для подкатегорий "Баги", "Вездеходы", "Картинг" и т.д., т.к. для них дальше подкатегории не существует. жалко что форуме нет возможности редактировать опубликованное сообщение, а то подправил чуток бы чтобы понятнее всем было! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:36 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
ScarferNV, ну на авито так и идет разделение - Авто с пробегом и Новые авто, поэтому я и подумал, что для каждого нужно отдельно заводить в БД. А разве это разделение возможно будет потом на этапе программирования сделать? Таблица Year - уберем тогда. Я думал каждый столбец, значения которого являются составным, нужно выносить в отдельный справочник... Сейчас подумаю как сделать список городов и регионов в одной таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:44 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Вот такое объединение таблиц Город и Региона получается мм.. в такой форме я ниче не нарушаю, типа 1NF, 2NF или 3NF? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:55 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Денисовичну на авито так и идет разделение - Авто с пробегом и Новые авто, поэтому я и подумал, что для каждого нужно отдельно заводить в БД. А разве это разделение возможно будет потом на этапе программирования сделать? Код: sql 1. 2. 3. Прям не топик, а параолимпиада по проектированию БД... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:55 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
rockclimber, во как)) ну я же программировании пока чайник еще тот..., но и до него доберусь скоро)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:59 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
rockclimber, ну ребята, я же писал, что тока осваиваю это направление. Да и многим, не тока мне, уверен будет интересно решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 17:01 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Денисовичrockclimber, во как)) ну я же программировании пока чайник еще тот..., но и до него доберусь скоро))Не расстраивайтесь, тут почти все отличились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 17:02 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
ДенисовичВот такое объединение таблиц Город и Региона получается мм.. в такой форме я ниче не нарушаю, типа 1NF, 2NF или 3NF? Сделай такую таблицу Regions: ID | Region | ID_R Где, ID_R это внешний ключ, а ID первичный. Получается ерархия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 17:07 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
AO_MMMMasterZivпропущено... Да Интересная мысль! Значит синие автомобили мы будем хранить в одной таблице, а зелёные - в другой ? Где ты там такое увидел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 08:07 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
ScarferNVДенисовичВот такое объединение таблиц Город и Региона получается мм.. в такой форме я ниче не нарушаю, типа 1NF, 2NF или 3NF? Сделай такую таблицу Regions: ID | Region | ID_R Где, ID_R это внешний ключ, а ID первичный. Получается ерархия. Для ID_R же нужна еще отдельная таблица значений Городов? Тогда получается все равно две таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 14:13 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
ДенисовичДля ID_R же нужна еще отдельная таблица значений Городов? Тогда получается все равно две таблицы. Нет, внешний ключ может идти от первичного ключа в рамках одной таблицы. С регионами этот вариант можно сделать. Представь, что вместо таблицы с регионами у тебя таблица сотрудников какой-то фирмы и надо построить организационную структуру этой фирмы. Допустим директор имеет заместителей, заместили подчиненных и так далее.. Так вот, это все делается с помощью одной таблицы. С регионами практически тоже самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 16:32 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Кажется я понял вас. Вот в это виде кажется в одну таблицу все вмещается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 19:58 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Денисович, о да! Это ближе к истине. Теперь посмотри, у тебя в 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 можно получить подробное место расположение: г.Волгоград, р-н Кировксий, ост.Мамаев Курган и что интересно, храним всю информацию в одной таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 07:47 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
ДенисовичЗдравствуйте! Сегодня зарегистрировался в данном форуме, т.к. с недавнего времени начал разработку сайта Доска объявлений, и соответственно столкнулся с неизбежной и признаться интересной задачей - проектирование БД доски объявлений. Прогуглил куча статей про проектирование, про нормальнаые формы (1NF, 2NF, 3NF...), но оказывается самостоятельно все же сложновато. Как сказал мне один гуру, "если хочешь расти профессионально то бери задачу на 1 уровень выше того чем ты владеешь, ты же сейчас взял на 4-5 уровней выше )))"... Но тем не менее хотелось бы с Вашей помощью разобраться и спроектировать полноценную БД. И так задача: хочу разработать структуру бд доски объявлений как на авито.ру. Что у меня сейчас есть - таблица с данными о транспортных средств. Но я не уверен что она на текущий момент в какой либо нормальной форме. В связи с чем вопрос, что или какие действия я должен сделать чтобы она пришла хотя бы в первую нормальную форму? Предполагаю тут нужно поэтапно оптимизировать таблицы, т.к. он громоздкий, думаю даже для гуру спецов по БД будет сложновато сходу привести его в третью нормальную форму... И так прошу профи по БД, не оставаться равнодушным к моей ситуации, буду премного благодарен если внесете свой вклад. Также будут благодарны десятки людей, думаю многих заинтересует решение данной задачи.. Лучше сначала использовать М2 13577413 А уже потом переходить к "таблицам". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 13:45 |
|
||
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#18+
Вообщем делал делал, получилось следующее )) прошу подправить просветленных, если где допустил ошибку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 21:37 |
|
||
|
|

start [/forum/search_topic.php?author=folone&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 488ms |
| total: | 788ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...