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

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

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

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


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


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

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

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

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

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

Марка
id_mark | name

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

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

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


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

Неет, если бы я хотел кому то передать на программирование, я бы тогда и не стал сам БД проектировать, а отдал бы все целиком кому то кто умеет это делать. Цель именно в том, чтобы пройти самому весь путь. На данное время у меня готов макет, рисовал сам с нуля, прям учился и рисовал. Ушло где то 2 месяца. Толком то и не знал я фотошоп. Далее взялся за верстку, учился и верстал, но когда сверстал частично главную страницу и дошел до формы поиска с фильтрами/зависимыми полями как на авито, я понял, что сделал ошибку начав верстку, не продумав БД. Поэтому сейчас я на пороге проектирования структуры БД. После сам лично буду верстать/кодировать+на CMS натягивать.
...
Рейтинг: 0 / 0
18.03.2014, 07:03
    #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
18.03.2014, 15:50
    #38589625
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование БД для доски объявлений (нормальная форма)
Это как? Нпр., для Категории Автомобили с пробегом сделать одну таблицу, а для Новые автомобили другую?



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

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

Да

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

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

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


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

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

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


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

мм.. в такой форме я ниче не нарушаю, типа 1NF, 2NF или 3NF?
...
Рейтинг: 0 / 0
19.03.2014, 16:55
    #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]