Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование базы данных для блога / 25 сообщений из 27, страница 1 из 2
19.12.2013, 23:41
    #38507232
fourEyes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
Здравствуйте!

Спроектировал схему бд для блога, хотелось бы комментариев от спецов.
Правильно ли построил, что забыл, что нарушил?
Товарищи, если вам не сложно направьте новичка.

p.s. Схему прикрепил к посту.
...
Рейтинг: 0 / 0
20.12.2013, 00:21
    #38507259
sdet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
fourEyes,
База проектируется на основании определенных требований, которые вы не предоставили.
Вы уверены, что пользователь не может иметь нескольких ролей?
Где храниться метаинформация блога и настройки?
Где хранятся links на другие блоги?
Адрес пользователя и соотв информацию лучше вынести в отдельную сущность
...
Рейтинг: 0 / 0
20.12.2013, 00:33
    #38507264
fourEyes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
sdet,

Спасибо за коммент.

Согласен, требования я не предоставил, так как делаю для себя, и записал их грубо говоря на бумажке.

1.Вы уверены, что пользователь не может иметь нескольких ролей?
- Я думаю что нет, а в чем преимущества того что пользователь может иметь несколько ролей

2.Где храниться метаинформация блога и настройки?
- Вот тут косяк, забыл.
Где хранятся links на другие блоги?
- Не предполагалось, вы имеете в виду ссылки на дружественные ресурсы?

3.Адрес пользователя и соотв информацию лучше вынести в отдельную сущность
- А в чем профит этого подхода?
...
Рейтинг: 0 / 0
20.12.2013, 00:51
    #38507271
sdet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
fourEyessdet,

Спасибо за коммент.

Согласен, требования я не предоставил, так как делаю для себя, и записал их грубо говоря на бумажке.

1.Вы уверены, что пользователь не может иметь нескольких ролей?
- Я думаю что нет, а в чем преимущества того что пользователь может иметь несколько ролей
Если это ваши правила ограничения ради бога но в жизни по другому

2.Где храниться метаинформация блога и настройки?
- Вот тут косяк, забыл.
Где хранятся links на другие блоги?
- Не предполагалось, вы имеете в виду ссылки на дружественные ресурсы?
Если это ваши правила ради бога но в жизни по другому

3.Адрес пользователя и соотв информацию лучше вынести в отдельную сущность
- А в чем профит этого подхода?
Вы знакомы с нормализацией? По одному адресу могут жить несколько людей. Каждый раз будете дублировать инфо для всех пользователей? Также пользователь может иметь несколько адресов
...
Рейтинг: 0 / 0
20.12.2013, 00:55
    #38507273
sdet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
fourEyes,
По п1,2
ответ один: Если это ваши правила ограничения, ради бога, но в жизни по другому
...
Рейтинг: 0 / 0
20.12.2013, 01:02
    #38507274
fourEyes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
sdet,

Нет, это не правила.
Я потому и спрашиваю, потому что пока не очень соображаю в этом.
Хочется с толком подойти к делу.

Насчет адресов и ролей вы правы, спасибо за советы.
...
Рейтинг: 0 / 0
20.12.2013, 02:53
    #38507312
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
fourEyes,

Ну поставь у себя тот же WP и посмотри структуру БД. Блин, бесят изобретатели велосипедов. )))
...
Рейтинг: 0 / 0
20.12.2013, 12:49
    #38507724
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
sdetВы знакомы с нормализацией? По одному адресу могут жить несколько людей.
Кстати, в таких многопользовательских базах подходами к нормализации "из учебника" надо пользоваться с осторожностью.

Вот, предположим, у Вас регистрируется Иван Иванович Иванов с адресом "1-я Парковая ул., дом 2, кв 18". Потом регистрируется
Нина Петровна Иванова с тем же адресом - надо понимать, Вы новой записи в таблице "адрес" не создается, а Нине Петровне ставите ссылку на ту же запись, что Ивану Ивановичу? Теперь внимание - Иван Иванович решает изменить свой адрес на "1-я Парковая ул., дом 2, корп. 1, кв 18" - что Вы делаете?
...
Рейтинг: 0 / 0
20.12.2013, 13:51
    #38507825
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
Кот МатроскинКстати, в таких многопользовательских базах подходами к нормализации "из учебника" надо пользоваться с осторожностью.
Возможно, следовало бы уточнить:
1 как связана нормализация с многопользовательностью.
2 каким подходам к нормализации противопоставляется "из учебника"? Может быть есть "по домашнему" к примеру? И чем они отличаются концептуально.

Поясняющие оличия примеры были бы тоже уместны так как, скорее всего, такая классификация подходов нормализации все еще не широко известна. И потому кто-то может пользоваться без осторожности.
...
Рейтинг: 0 / 0
20.12.2013, 14:13
    #38507859
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
vadiminfoКот МатроскинКстати, в таких многопользовательских базах подходами к нормализации "из учебника" надо пользоваться с осторожностью.
Возможно, следовало бы уточнить:
1 как связана нормализация с многопользовательностью.

Ну так в примере я и постарался показать, как они связаны.
Если удаляться в теорию - Дейт обсуждал ситуацию, когда у нас есть набор непреложных фактов, и наша задача - отразить их в БД оптимальным образом. Мы знаем , что в бухгалтерии изменился телефон, и гораздо удобнее отразить этот факт в одной записи, чем у всех сотрудников бухгалтерии.
А в базах, где регистрируются и которые наполняют 100500 хомячков, руководствуясь какими-то своими резонами - с непреложными фактами дело обстоит по-другому. Вот в описанном случае - знаем ли мы, что реальный адрес Ивана Ивановича и Нины Петровны изменился? Или это просто Иван Иванович решил выпендриться? Или на самом деле действительно есть отдельный адрес с корпусом, и на самом деле Иван Иванович съехал в соседний дом от опостылевшей жены?
У нас есть другие непреложные факты - 1. Иван Иванович изменил свою инфу 2. Нина Петровна не сочла нужным это сделать.
И для отражения этих фактов стандартный подход с выделением ФЗ в инфе - едва ли не мешает.
...
Рейтинг: 0 / 0
20.12.2013, 14:36
    #38507909
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
Кот Матроскинvadiminfoпропущено...

Возможно, следовало бы уточнить:
1 как связана нормализация с многопользовательностью.

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



Кот МатроскинВот в описанном случае - знаем ли мы, что реальный адрес Ивана Ивановича и Нины Петровны изменился? Или это просто Иван Иванович решил выпендриться? Или на самом деле действительно есть отдельный адрес с корпусом, и на самом деле Иван Иванович съехал в соседний дом от опостылевшей жены?
У нас есть другие непреложные факты - 1. Иван Иванович изменил свою инфу 2. Нина Петровна не сочла нужным это сделать.
И для отражения этих фактов стандартный подход с выделением ФЗ в инфе - едва ли не мешает.
Т.е. не " стандартный подход " это просто типа денорамализация? Ну, возможно, это тоже входит в "стандартный подход". По крайней мере, методолгии проекитрования читаемые, не отрицают оной, если в целом получится более оптимальное что-то.
...
Рейтинг: 0 / 0
20.12.2013, 15:15
    #38507991
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
vadiminfoКот Матроскинпропущено...

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

Под свойством базы "многопользовательская" я имел в виду не количество одновременных коннектов к БД.


vadiminfoКот МатроскинВот в описанном случае - знаем ли мы, что реальный адрес Ивана Ивановича и Нины Петровны изменился? Или это просто Иван Иванович решил выпендриться? Или на самом деле действительно есть отдельный адрес с корпусом, и на самом деле Иван Иванович съехал в соседний дом от опостылевшей жены?
У нас есть другие непреложные факты - 1. Иван Иванович изменил свою инфу 2. Нина Петровна не сочла нужным это сделать.
И для отражения этих фактов стандартный подход с выделением ФЗ в инфе - едва ли не мешает.
Т.е. не " стандартный подход " это просто типа денорамализация?
Нет.
Нормализация - это устранение избыточности и возможности аномалий при обновлении данных.
Выделение адреса в отдельную сущность в описанном случае не ведет к устранению избыточности и аномалий обновления, следовательно, не является нормализацией.
...
Рейтинг: 0 / 0
20.12.2013, 15:52
    #38508076
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
Кот МатроскинВыделение адреса .... не является нормализацией.
Тогда не ясно про "стандартный подход" к нормализации, раз там вообще нужна нормализация. Он, как бы, не занимается нормализацией схем и без того находящихся в нормальных формах.
...
Рейтинг: 0 / 0
20.12.2013, 17:58
    #38508312
vadiminfo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
опечатка: вместо
вообще нужна нормализация
следует читать
вообще не нужна нормализация
...
Рейтинг: 0 / 0
20.12.2013, 18:13
    #38508330
sdet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
Кот Матроскинvadiminfoпропущено...

Вообще-то первая БД тоже, обычно, относятся к многопользовательским: может ондновременно работать несколько пользователей.
Больше одного: возможны конфликты и взаимное влияние.

Под свойством базы "многопользовательская" я имел в виду не количество одновременных коннектов к БД.


vadiminfoпропущено...

Т.е. не " стандартный подход " это просто типа денорамализация?
Нет.
Нормализация - это устранение избыточности и возможности аномалий при обновлении данных.
Выделение адреса в отдельную сущность в описанном случае не ведет к устранению избыточности и аномалий обновления, следовательно, не является нормализацией.
Без меня много написали, поэтому отвечу в одном сообщении на все.
Безусловно, что в случае необходимости обновления адресов при организации в отдельной таблице, добавятся дополнительные издержки и решение как это обрабатывать с учетом требований проектируемой системы (Например добавляется новый адрес без возможности обновления)
Однако, такой вариант позволяет выбирать города, страны и т. д. из справочников(dropdown), убирая аномалии и spelling проблемы, а также делать distinct из большой таблицы. Дает возможность использовать адреса на разные объекты и хранить историю.
Есть установленные правила образования нормальных форм и если по требованию дизайна база приведена к форме, то значит она нормализована в соответствии с ней. При этом могут быть как положительные так и отрицательные составляющие такого приведения и решение принимается по совокупности.
...
Рейтинг: 0 / 0
20.12.2013, 19:22
    #38508409
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
sdetКот Матроскинпропущено...

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

Ну я про это и говорю - ни от каких аномалий обновления в сравнении с хранением в основной таблице не избавились, + получили дополнительные проблемы с проверками "А есть ли еще у кого-то такой же адрес?".

sdetОднако, такой вариант позволяет выбирать города, страны и т. д. из справочников(dropdown), убирая аномалии и spelling проблемы, а также делать distinct из большой таблицы. Дает возможность использовать адреса на разные объекты и хранить историю.

??
Неясна связь организации UI и хранения данных в БД. Кто Вам мешает делать выбор из справочников в случае хранения в основной таблице? Кто мешает "делать distinct из большой таблицы" (что бы это ни значило и для чего бы ни было нужно)?
Кто мешает хранить историю по большой таблице?

Понимаете, я не против отдельной таблицы адресов в базе блогов (Гораздо смешнее вопрос зачем там вообще адреса в любом виде ) - для этого могут быть основания. Я только предлагаю не называть это нормализацией и тщательно продумывать
осмысленные причины такого решения.


sdetЕсть установленные правила образования нормальных форм и если по требованию дизайна база приведена к форме, то значит она нормализована в соответствии с ней.
Это та же логика, которая предлагает запускать на маршрут поливальные машины в дождь. "Надо же мыть улицы, и по инструкции для чистых улиц их надо поливать не реже 2 раз в неделю. Поэтому запустив машины сегодня в дождь, мы способствуем чистоте городских улиц."
...
Рейтинг: 0 / 0
20.12.2013, 19:52
    #38508435
sdet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
Кот Матроскин??
Неясна связь организации UI и хранения данных в БД. Кто Вам мешает делать выбор из справочников в случае хранения в основной таблице? Кто мешает "делать distinct из большой таблицы" (что бы это ни значило и для чего бы ни было нужно)?
Кто мешает хранить историю по большой таблице?
Вероятно отсутствие их в схеме данных
Кот МатроскинПонимаете, я не против отдельной таблицы адресов в базе блогов (Гораздо смешнее вопрос зачем там вообще адреса в любом виде ) - для этого могут быть основания. Я только предлагаю не называть это нормализацией и тщательно продумывать
осмысленные причины такого решения.
Если вы не хотите называть нормализацию нормализацией, ради бога, это ваше право.
...
Рейтинг: 0 / 0
20.12.2013, 21:24
    #38508494
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
> в базах, где регистрируются и которые наполняют 100500 хомячков, [] с непреложными фактами дело обстоит по-другому

Да нет, всё как всегда. Есть источники, которые мы считаем достоверными, и есть все остальные. Поддержка данных в актуальном состоянии стоит денег. Ничего нового.

Для какой цели в блогах адреса пользователей - загадка.

> знаем ли мы, что реальный адрес Ивана Ивановича и Нины Петровны изменился?

Это неправильно сформулированный вопрос. Если есть необходимость поддержки актуальной адресации с точностью до идентификатора строения, значит, для этого должен быть штатный доверенный способ.
...
Рейтинг: 0 / 0
23.12.2013, 23:30
    #38510548
fourEyes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
Почитав ваши комментарии, и другую информацию, бд приобрела немного другой вид.
Спасибо вам за советы и конструктив.
...
Рейтинг: 0 / 0
23.12.2013, 23:41
    #38510553
fourEyes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
Настройки и всякую мета информацию для сайта в целом добавить.
...
Рейтинг: 0 / 0
23.12.2013, 23:42
    #38510554
fourEyes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
Осталось.
...
Рейтинг: 0 / 0
24.12.2013, 00:06
    #38510566
sdet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
fourEyes,
Не зачет.
Что UserId делает в Ролях? User и UserAddress не правильно сделано; users не смогут иметь один адрес. Читайте, что такое отношение многие ко многим и другие аспекты проектирования. Начинать вторую итерацию по тому же самому нет желания.
...
Рейтинг: 0 / 0
24.12.2013, 11:49
    #38510897
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
fourEyes,

Уникальные тэги для каждого поста не очень осмысленны - поскольку поиск по ним, очевидно, проводить нельзя.
...
Рейтинг: 0 / 0
27.12.2013, 07:12
    #38513806
fourEyes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
sdet,

Да, сори. Что то я заигрался.Переделаю.
...
Рейтинг: 0 / 0
06.02.2014, 15:41
    #38552049
avas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проектирование базы данных для блога
sdetВы знакомы с нормализацией? По одному адресу могут жить несколько людей. Каждый раз будете дублировать инфо для всех пользователей? Также пользователь может иметь несколько адресов

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


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