|
|
|
Проектирование БД для доски объявлений (нормальная форма)
|
|||
|---|---|---|---|
|
#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 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38588957&tid=1540935]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 487ms |

| 0 / 0 |

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