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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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


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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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