powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / раскритикуйте архитектуру БД
14 сообщений из 14, страница 1 из 1
раскритикуйте архитектуру БД
    #34832560
gundos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Последнее время прихожу к выводу, что удобнее всего в плане дальнейшей гибкости и масштабирования проектируемой системы все связывание подчиненных данных с главными надо проводить через параметры, а не создавая новых таблиц, столбцов и т.д... Скорее всего я неправ с точки зрения быстродействия. Можете ли меня проконсультировать по проблемам такого подхода?
По готовым базам - вижу, что на практике этим не очень пользуются.

Описываю суть:
например есть данные:
- таблица поставщики - главный,
- таблица товар - подчиненный,
- таблица клиенты - подчиненный.
Вариант 1 (более чем распространенный):
- создать таблицу "поставщик-товары",
- создать таблицу "поставщик-клиенты";
Вариант 2 (предлагаемый):
- создать таблицу "параметры",
- создать таблицу "тип параметров" - это и есть "товар", "клиенты",
- создать таблицу "значения параметров" со столбцами разного формата.
- создать таблицу "поставщик-параметры", с одним из столбцов - тип параметра и сделать индекс "поставщик - тип параметра - параметр".
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34832617
Pir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вариант 2:

для небольшой системы может и приемлемо. из плюсов - добавление новых атрибутов объектов не требует изменения структуры бд.
зато много минусов такой универсальной архитектуры:
- отказываешься от множества возможностей субд (партицирование, ограничения целостности и т.д.)
- данные денормализованы
- при сложных условиях поиска по множеству атрибутов линейно растет количество join'ов
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34832668
gundos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
- отказываешься от множества возможностей субд (партицирование, ограничения целостности и т.д.)
а если в таблицу "значения параметров" вогнать еще и тип параметра - могу сделать партиционирование по типу. В таблице "значения параметров" внешним ключом сделать "код параметра, тип параметра", в таблице "поставщик-параметры"-первичным ключом. Как такой вариант?
Код: plaintext
- данные денормализованы
Где?
Код: plaintext
- при сложных условиях поиска по множеству атрибутов линейно растет количество join'ов
а не будет ли при предлагаемых мной условиях - это сильно незначительным замедлением?
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34832680
gundos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чем вызвано...мне вбазе надо хранить еще и все изменения сделанные когда либо. Логично историю отнести в отдельную часть (одни таблицы), а реальные данные - в другую. Если брать 1-й вариант - у меня столько дублей будет похожих объектов будет...жуть, а так всего 4
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34833158
sti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 автор

Вам аббревиатура EAV что-нибудь говорит?
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34833332
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Все велосипеды уже изобретены и ждут своих седоков" - из форумов SQL.RU

Серьезно - решение проектировщика о балансе между конкретной реализацией и универсальностью за счет соответсвующих методов и является сутью разработки.
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34833699
gundos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторВам аббревиатура EAV что-нибудь говорит?
пока нет...если по теме, можно ссылочку (в ya.ru что то толком ничего не написано)?
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34833840
sti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да хотя бы здесь в поиске введите EAV.
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34834046
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gundos авторВам аббревиатура EAV что-нибудь говорит?
пока нет...если по теме, можно ссылочку (в ya.ru что то толком ничего не написано)? вот
На английском, но с картинками
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34834244
gundos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to BELY: за ссылку спасибо, довольно наглядно и понятно. Если по поводу сравнения методов архитектуры (быстродействие) есть у кого мукулатура (желательно на русском) - буду признателен.
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34834850
OraDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gundosВариант 2 (предлагаемый):
- создать таблицу "параметры",
- создать таблицу "тип параметров" - это и есть "товар", "клиенты",
- создать таблицу "значения параметров" со столбцами разного формата.
- создать таблицу "поставщик-параметры", с одним из столбцов - тип параметра и сделать индекс "поставщик - тип параметра - параметр".Зачем "поставщик-параметры", иди те уж до конца, поставщика в "тип параметров", а в таблице "значения параметров" еще и ссылки храните между клиентами, поставщиками ,товарами и пр.

А теперь попробуйте сделать простую форму с одним мастер-детайл
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34834924
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gundosto BELY: за ссылку спасибо, довольно наглядно и понятно. Если по поводу сравнения методов архитектуры (быстродействие) есть у кого мукулатура (желательно на русском) - буду признателен.Сравнение быстродействия - я думаю нигде не найти.
Но чтобы понять степень проблем, достаточно представить следующий запрос:

Надо отобрать всех поставщиков, которые имеют статус "Партнер", которые были созданы за последние 2 месяца и у которых стоит признак "Зарубежный".

Для обычной таблицы - это будет три поля и запрос будет всего к одной таблице.
Для EAV - надо будет пройтись по значениям атрибутов.
Если у нас организаций 100тыс в базе, у каждой в среднем 20 атрибутов - сколько придется перелопатить записей в EAV структуре - можно представить.
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34835890
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gundosto BELY: за ссылку спасибо, довольно наглядно и понятно. Если по поводу сравнения методов архитектуры (быстродействие) есть у кого мукулатура (желательно на русском) - буду признателен.Честно говоря, не понимаю смысла EAV.

В сервере БД уже есть таблицы, подобные тем, которые вы хотите создать.

Зачем делать эту работу ещё раз?

"все связывание подчиненных данных с главными надо проводить через параметры, а не создавая новых таблиц, столбцов и т.д..."

Чем сложнее создать таблицу в сервере СУБД, пользуясь его командами, чем в вашей системе, пользуясь вашими командами? Вы создадите более удобный и простой язык описания схемы? :-)

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

В ообщем, поищите здесь все обсуждения этой темы, почитайте.
...
Рейтинг: 0 / 0
раскритикуйте архитектуру БД
    #34836399
kittn2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gundos.
Поздравляю ! Вы очередной первооткрыватель базы "по Тенцеру"! Что это такое - в поиск. Там вы найдете массу аргументов "за" и "против".

Одна из ссылок -
/topic/246069&pg=-1
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / раскритикуйте архитектуру БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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