|
|
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Спроектировал схему бд для блога, хотелось бы комментариев от спецов. Правильно ли построил, что забыл, что нарушил? Товарищи, если вам не сложно направьте новичка. p.s. Схему прикрепил к посту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2013, 23:41 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
fourEyes, База проектируется на основании определенных требований, которые вы не предоставили. Вы уверены, что пользователь не может иметь нескольких ролей? Где храниться метаинформация блога и настройки? Где хранятся links на другие блоги? Адрес пользователя и соотв информацию лучше вынести в отдельную сущность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 00:21 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
sdet, Спасибо за коммент. Согласен, требования я не предоставил, так как делаю для себя, и записал их грубо говоря на бумажке. 1.Вы уверены, что пользователь не может иметь нескольких ролей? - Я думаю что нет, а в чем преимущества того что пользователь может иметь несколько ролей 2.Где храниться метаинформация блога и настройки? - Вот тут косяк, забыл. Где хранятся links на другие блоги? - Не предполагалось, вы имеете в виду ссылки на дружественные ресурсы? 3.Адрес пользователя и соотв информацию лучше вынести в отдельную сущность - А в чем профит этого подхода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 00:33 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
fourEyessdet, Спасибо за коммент. Согласен, требования я не предоставил, так как делаю для себя, и записал их грубо говоря на бумажке. 1.Вы уверены, что пользователь не может иметь нескольких ролей? - Я думаю что нет, а в чем преимущества того что пользователь может иметь несколько ролей Если это ваши правила ограничения ради бога но в жизни по другому 2.Где храниться метаинформация блога и настройки? - Вот тут косяк, забыл. Где хранятся links на другие блоги? - Не предполагалось, вы имеете в виду ссылки на дружественные ресурсы? Если это ваши правила ради бога но в жизни по другому 3.Адрес пользователя и соотв информацию лучше вынести в отдельную сущность - А в чем профит этого подхода? Вы знакомы с нормализацией? По одному адресу могут жить несколько людей. Каждый раз будете дублировать инфо для всех пользователей? Также пользователь может иметь несколько адресов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 00:51 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
fourEyes, По п1,2 ответ один: Если это ваши правила ограничения, ради бога, но в жизни по другому ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 00:55 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
sdet, Нет, это не правила. Я потому и спрашиваю, потому что пока не очень соображаю в этом. Хочется с толком подойти к делу. Насчет адресов и ролей вы правы, спасибо за советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 01:02 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
fourEyes, Ну поставь у себя тот же WP и посмотри структуру БД. Блин, бесят изобретатели велосипедов. ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 02:53 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
sdetВы знакомы с нормализацией? По одному адресу могут жить несколько людей. Кстати, в таких многопользовательских базах подходами к нормализации "из учебника" надо пользоваться с осторожностью. Вот, предположим, у Вас регистрируется Иван Иванович Иванов с адресом "1-я Парковая ул., дом 2, кв 18". Потом регистрируется Нина Петровна Иванова с тем же адресом - надо понимать, Вы новой записи в таблице "адрес" не создается, а Нине Петровне ставите ссылку на ту же запись, что Ивану Ивановичу? Теперь внимание - Иван Иванович решает изменить свой адрес на "1-я Парковая ул., дом 2, корп. 1, кв 18" - что Вы делаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 12:49 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинКстати, в таких многопользовательских базах подходами к нормализации "из учебника" надо пользоваться с осторожностью. Возможно, следовало бы уточнить: 1 как связана нормализация с многопользовательностью. 2 каким подходам к нормализации противопоставляется "из учебника"? Может быть есть "по домашнему" к примеру? И чем они отличаются концептуально. Поясняющие оличия примеры были бы тоже уместны так как, скорее всего, такая классификация подходов нормализации все еще не широко известна. И потому кто-то может пользоваться без осторожности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 13:51 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
vadiminfoКот МатроскинКстати, в таких многопользовательских базах подходами к нормализации "из учебника" надо пользоваться с осторожностью. Возможно, следовало бы уточнить: 1 как связана нормализация с многопользовательностью. Ну так в примере я и постарался показать, как они связаны. Если удаляться в теорию - Дейт обсуждал ситуацию, когда у нас есть набор непреложных фактов, и наша задача - отразить их в БД оптимальным образом. Мы знаем , что в бухгалтерии изменился телефон, и гораздо удобнее отразить этот факт в одной записи, чем у всех сотрудников бухгалтерии. А в базах, где регистрируются и которые наполняют 100500 хомячков, руководствуясь какими-то своими резонами - с непреложными фактами дело обстоит по-другому. Вот в описанном случае - знаем ли мы, что реальный адрес Ивана Ивановича и Нины Петровны изменился? Или это просто Иван Иванович решил выпендриться? Или на самом деле действительно есть отдельный адрес с корпусом, и на самом деле Иван Иванович съехал в соседний дом от опостылевшей жены? У нас есть другие непреложные факты - 1. Иван Иванович изменил свою инфу 2. Нина Петровна не сочла нужным это сделать. И для отражения этих фактов стандартный подход с выделением ФЗ в инфе - едва ли не мешает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 14:13 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинvadiminfoпропущено... Возможно, следовало бы уточнить: 1 как связана нормализация с многопользовательностью. Ну так в примере я и постарался показать, как они связаны. Если удаляться в теорию - Дейт обсуждал ситуацию, когда у нас есть набор непреложных фактов, и наша задача - отразить их в БД оптимальным образом. Мы знаем , что в бухгалтерии изменился телефон, и гораздо удобнее отразить этот факт в одной записи, чем у всех сотрудников бухгалтерии. А в базах, где регистрируются и которые наполняют 100500 хомячков, руководствуясь какими-то своими резонами - с непреложными фактами дело обстоит по-другому. Вообще-то первая БД тоже, обычно, относятся к многопользовательским: может ондновременно работать несколько пользователей. Больше одного: возможны конфликты и взаимное влияние. Кот МатроскинВот в описанном случае - знаем ли мы, что реальный адрес Ивана Ивановича и Нины Петровны изменился? Или это просто Иван Иванович решил выпендриться? Или на самом деле действительно есть отдельный адрес с корпусом, и на самом деле Иван Иванович съехал в соседний дом от опостылевшей жены? У нас есть другие непреложные факты - 1. Иван Иванович изменил свою инфу 2. Нина Петровна не сочла нужным это сделать. И для отражения этих фактов стандартный подход с выделением ФЗ в инфе - едва ли не мешает. Т.е. не " стандартный подход " это просто типа денорамализация? Ну, возможно, это тоже входит в "стандартный подход". По крайней мере, методолгии проекитрования читаемые, не отрицают оной, если в целом получится более оптимальное что-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 14:36 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
vadiminfoКот Матроскинпропущено... Ну так в примере я и постарался показать, как они связаны. Если удаляться в теорию - Дейт обсуждал ситуацию, когда у нас есть набор непреложных фактов, и наша задача - отразить их в БД оптимальным образом. Мы знаем , что в бухгалтерии изменился телефон, и гораздо удобнее отразить этот факт в одной записи, чем у всех сотрудников бухгалтерии. А в базах, где регистрируются и которые наполняют 100500 хомячков, руководствуясь какими-то своими резонами - с непреложными фактами дело обстоит по-другому. Вообще-то первая БД тоже, обычно, относятся к многопользовательским: может ондновременно работать несколько пользователей. Больше одного: возможны конфликты и взаимное влияние. Под свойством базы "многопользовательская" я имел в виду не количество одновременных коннектов к БД. vadiminfoКот МатроскинВот в описанном случае - знаем ли мы, что реальный адрес Ивана Ивановича и Нины Петровны изменился? Или это просто Иван Иванович решил выпендриться? Или на самом деле действительно есть отдельный адрес с корпусом, и на самом деле Иван Иванович съехал в соседний дом от опостылевшей жены? У нас есть другие непреложные факты - 1. Иван Иванович изменил свою инфу 2. Нина Петровна не сочла нужным это сделать. И для отражения этих фактов стандартный подход с выделением ФЗ в инфе - едва ли не мешает. Т.е. не " стандартный подход " это просто типа денорамализация? Нет. Нормализация - это устранение избыточности и возможности аномалий при обновлении данных. Выделение адреса в отдельную сущность в описанном случае не ведет к устранению избыточности и аномалий обновления, следовательно, не является нормализацией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 15:15 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинВыделение адреса .... не является нормализацией. Тогда не ясно про "стандартный подход" к нормализации, раз там вообще нужна нормализация. Он, как бы, не занимается нормализацией схем и без того находящихся в нормальных формах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 15:52 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
опечатка: вместо вообще нужна нормализация следует читать вообще не нужна нормализация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 17:58 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинvadiminfoпропущено... Вообще-то первая БД тоже, обычно, относятся к многопользовательским: может ондновременно работать несколько пользователей. Больше одного: возможны конфликты и взаимное влияние. Под свойством базы "многопользовательская" я имел в виду не количество одновременных коннектов к БД. vadiminfoпропущено... Т.е. не " стандартный подход " это просто типа денорамализация? Нет. Нормализация - это устранение избыточности и возможности аномалий при обновлении данных. Выделение адреса в отдельную сущность в описанном случае не ведет к устранению избыточности и аномалий обновления, следовательно, не является нормализацией. Без меня много написали, поэтому отвечу в одном сообщении на все. Безусловно, что в случае необходимости обновления адресов при организации в отдельной таблице, добавятся дополнительные издержки и решение как это обрабатывать с учетом требований проектируемой системы (Например добавляется новый адрес без возможности обновления) Однако, такой вариант позволяет выбирать города, страны и т. д. из справочников(dropdown), убирая аномалии и spelling проблемы, а также делать distinct из большой таблицы. Дает возможность использовать адреса на разные объекты и хранить историю. Есть установленные правила образования нормальных форм и если по требованию дизайна база приведена к форме, то значит она нормализована в соответствии с ней. При этом могут быть как положительные так и отрицательные составляющие такого приведения и решение принимается по совокупности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 18:13 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
sdetКот Матроскинпропущено... Нет. Нормализация - это устранение избыточности и возможности аномалий при обновлении данных. Выделение адреса в отдельную сущность в описанном случае не ведет к устранению избыточности и аномалий обновления, следовательно, не является нормализацией. Без меня много написали, поэтому отвечу в одном сообщении на все. Безусловно, что в случае необходимости обновления адресов при организации в отдельной таблице, добавятся дополнительные издержки и решение как это обрабатывать с учетом требований проектируемой системы (Например добавляется новый адрес без возможности обновления) Ну я про это и говорю - ни от каких аномалий обновления в сравнении с хранением в основной таблице не избавились, + получили дополнительные проблемы с проверками "А есть ли еще у кого-то такой же адрес?". sdetОднако, такой вариант позволяет выбирать города, страны и т. д. из справочников(dropdown), убирая аномалии и spelling проблемы, а также делать distinct из большой таблицы. Дает возможность использовать адреса на разные объекты и хранить историю. ?? Неясна связь организации UI и хранения данных в БД. Кто Вам мешает делать выбор из справочников в случае хранения в основной таблице? Кто мешает "делать distinct из большой таблицы" (что бы это ни значило и для чего бы ни было нужно)? Кто мешает хранить историю по большой таблице? Понимаете, я не против отдельной таблицы адресов в базе блогов (Гораздо смешнее вопрос зачем там вообще адреса в любом виде ) - для этого могут быть основания. Я только предлагаю не называть это нормализацией и тщательно продумывать осмысленные причины такого решения. sdetЕсть установленные правила образования нормальных форм и если по требованию дизайна база приведена к форме, то значит она нормализована в соответствии с ней. Это та же логика, которая предлагает запускать на маршрут поливальные машины в дождь. "Надо же мыть улицы, и по инструкции для чистых улиц их надо поливать не реже 2 раз в неделю. Поэтому запустив машины сегодня в дождь, мы способствуем чистоте городских улиц." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 19:22 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин?? Неясна связь организации UI и хранения данных в БД. Кто Вам мешает делать выбор из справочников в случае хранения в основной таблице? Кто мешает "делать distinct из большой таблицы" (что бы это ни значило и для чего бы ни было нужно)? Кто мешает хранить историю по большой таблице? Вероятно отсутствие их в схеме данных Кот МатроскинПонимаете, я не против отдельной таблицы адресов в базе блогов (Гораздо смешнее вопрос зачем там вообще адреса в любом виде ) - для этого могут быть основания. Я только предлагаю не называть это нормализацией и тщательно продумывать осмысленные причины такого решения. Если вы не хотите называть нормализацию нормализацией, ради бога, это ваше право. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 19:52 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
> в базах, где регистрируются и которые наполняют 100500 хомячков, [] с непреложными фактами дело обстоит по-другому Да нет, всё как всегда. Есть источники, которые мы считаем достоверными, и есть все остальные. Поддержка данных в актуальном состоянии стоит денег. Ничего нового. Для какой цели в блогах адреса пользователей - загадка. > знаем ли мы, что реальный адрес Ивана Ивановича и Нины Петровны изменился? Это неправильно сформулированный вопрос. Если есть необходимость поддержки актуальной адресации с точностью до идентификатора строения, значит, для этого должен быть штатный доверенный способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2013, 21:24 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
Почитав ваши комментарии, и другую информацию, бд приобрела немного другой вид. Спасибо вам за советы и конструктив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 23:30 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
Настройки и всякую мета информацию для сайта в целом добавить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 23:41 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
Осталось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2013, 23:42 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
fourEyes, Не зачет. Что UserId делает в Ролях? User и UserAddress не правильно сделано; users не смогут иметь один адрес. Читайте, что такое отношение многие ко многим и другие аспекты проектирования. Начинать вторую итерацию по тому же самому нет желания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2013, 00:06 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
fourEyes, Уникальные тэги для каждого поста не очень осмысленны - поскольку поиск по ним, очевидно, проводить нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2013, 11:49 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
sdet, Да, сори. Что то я заигрался.Переделаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2013, 07:12 |
|
||
|
Проектирование базы данных для блога
|
|||
|---|---|---|---|
|
#18+
sdetВы знакомы с нормализацией? По одному адресу могут жить несколько людей. Каждый раз будете дублировать инфо для всех пользователей? Также пользователь может иметь несколько адресов а ещё есть Вася Пупкин из Саратова, и Вася Пупкин из Пскова. Зачем же дублировать инфу об их именах, давайте будем шарить имена между обоими сущностями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 15:41 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38508409&tid=1540983]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
171ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 508ms |

| 0 / 0 |

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