powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ORM снова или тенцер наоброт
25 сообщений из 51, страница 1 из 3
ORM снова или тенцер наоброт
    #33798067
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется задача написать картографическую программу, которая бы могла привязывать к объектам на карте различную информацию. Т.е. класическая задча - имеем разные классы объектов, колчиество классов заранее неизвестно.
надо написать прогарамму, чтобы можно было добавлять новые классы без изменения кода программы. Можно хранить данные в структуре типа EAV. А можно хранить в виде плоских таблиц, а вот уже в метажнных описать как эти плоские таблицы обрабатывать. Мне кажется, что этот подход будет лучше EAV.
Делал ли кто-нибудь что-то подобное?
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33798150
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Объекты на карте", какими бы разными они ни выглядели, имхо довольно похожи. Таким образом, желание делать разные таблицы "чтобы не засовывать разнообразнейшую информацию в прокрустово ложе узкой структуры" имхо не особо уместно.

Если так, остается вопрос быстродействия. Если введенной таким образом информации будет много, и весьма вероятно, узким местом системы станут отчеты над этой информацией (не запросы типа "выведи информацию по объекту ID=25", а что-то более масштабное - к примеру "дай среднюю глубину всех луж в Московской области"), плоские таблицы и какой-то интеллект их создания могут дать очень большой выигрыш. Если информация носит характер "то, что выпадает в хинте" - я бы использовал EAV-like решение.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33798179
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объекты на карте это действительно СОВСЕМ разные объекты. Например, это может быть скважина или река. Скважина обладает глубиной, азумутом, датой начала и окончания бурения. К скважине могут быть прицеплены дочерние объекты, например, химсостав проб на разной глубине. Река имеет ширину, глубину, исток итд..
Речь идет не о графических объектах, а о дополнительной информации связанной с ними. Данные в большей совей части буду не набиваться, а импортироваться из уже существующих БД поэтому табличное представлеие более естественное. Какой выигрыш дает EAV по сравнению с ROT я признаюсь не сильно понимаю.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33798185
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanovОбъекты на карте это действительно СОВСЕМ разные объекты. Например, это может быть скважина или река. Скважина обладает глубиной, азумутом, датой начала и окончания бурения.
Это как раз то, что я называю очень похожие объекты. Собственно, их всего три - точка (иконка), линия и область. К каждому из них прицеплен набор весьма произвольных комментариев; если речь не идет о дальнейшей интеллектуальной обработке этих данных, о бизнес-логике над ними (например, проверка обязательных полей для каждого типа объекта), то даже не нужно возиться с типами: всем данным дается varchar(много) и задача решена. В этом случае EAV - самое оно.

Может быть другой случай. Может быть, что значительная часть Вашей задачи - в обработке этих данных, например в автоматическом анализе того самого химсостава на разных глубинах согласно вводимым оператором формулам. В этом случае автосоздание таблиц становится более привлекательным вариантом.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33798260
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обработка конечно будет.. Будет и ввод и поиск, и отчеты итд.. Также будет, например, объединение данных из разных источников.
Также будет отношение многое ко многому между объектами геометрическими и информационными.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33798856
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer +1
У нас всего 3 типа класса (точка, текст, полигон)
id x_min y_min x_max y_max typ_obj blob
по id объекта по EAV таблица атрибутов и значений атрибутов.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33798880
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanovОбъекты на карте это действительно СОВСЕМ разные объекты. Привязка к карте - это отдельный вопрос, не нужно связывать его со свойствами привязываемых объектов. Видимо "Скважина обладает глубиной, азумутом, датой начала и окончания бурения." вне зависимости от нанесения на карту. Пр нанесении дополнительно скважине сопоставляются картографические данные: геометрический объект, координаты, слой и др. Поэтому сама по себе привязка к карте не требует изменения уже имеющихся структур.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799080
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRПривязка к карте - это отдельный вопрос, не нужно связывать его со свойствами привязываемых объектов
да, конечно так и есть.. Т.е. на самом деоле имеется просто большое количество классов и экземляров класса.
Я просто думаю, что те преимущества которые дает EAV (гибкость) обеспечат и отдельные таблицы. Ну придется в код поддержки метаданных добавить создание и модификацию таблиц. Зато будем иметь следующие плюсы
Часть информации из метаданных будет браться из описания таблиц. Например, тип данных, длинна varchar итд

Ссылочная целостность

Скорость исполнения

Обозримость данных. В случае чего можно убдет написаить простейший запрос, или просто прсмотреть всю таблицу если она небольшая.

не будет проблемы с хранением различных типов данных в одной колонке или нескольких таблицах.

Возможность писать БЫСТРЫЕ традиционные запросы.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799098
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanov видел такую БД "по старинке" на каждый атрибут - таблица.
Более 200 таблиц. После переписки под EAV 3 таблицы.

Географические объекты и их атрибуты схожи с атрибутами товаров большой номенклатуры. Где как не здесь делать EAV.

Поиск.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799115
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем так плохо иметь много таблиц? Вот совсем не понимаю этой проблмы?
Ну будет у админа програмка которая позволит ему просматривать список классов, создавать удалять итд.. Кадый класс таблица. Чтобы не путались под ногами - можно им дать префикс какой-нибудь..
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799171
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanovЧем так плохо иметь много таблиц? Вот совсем не понимаю этой проблмы?
Ну будет у админа програмка которая позволит ему просматривать список классов, создавать удалять итд.. Кадый класс таблица. Чтобы не путались под ногами - можно им дать префикс какой-нибудь..
разговор был о:
- атрибуты - таблиц А атрибутов (EAV)
а не о
vromanovКадый класс таблица.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799192
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
разговор был о:
- атрибуты - таблиц А атрибутов (EAV)

Это я понял.. :) Не понял чем это лучше кроме кол-ва таблиц.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799263
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanovЯ просто думаю, что те преимущества которые дает EAV (гибкость) обеспечат и отдельные таблицы. Ну придется в код поддержки метаданных добавить создание и модификацию таблиц. Зато будем иметь следующие плюсы
Все правильно и еще больше. Скажем, к такой базе без проблем подключится любой стандартный генератор отчетов, тот же Discoverer.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799282
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanov ModelRПривязка к карте - это отдельный вопрос, не нужно связывать его со свойствами привязываемых объектов
да, конечно так и есть.. Т.е. на самом деоле имеется просто большое количество классов и экземляров класса.
Я просто думаю, что те преимущества которые дает EAV (гибкость) обеспечат и отдельные таблицы. Не все. В EAV просто выдать все объекты, которые обладают заданным значение все равно какого свойства. Например, все, что-хоть как-то связано с данной скважиной. Нужно ли это в Вашей задаче - отдельный вопрос.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799285
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanov Petro123
разговор был о:
- атрибуты - таблиц А атрибутов (EAV)

Это я понял.. :) Не понял чем это лучше кроме кол-ва таблиц.
т.е. Вы предлагаете на каждый атрибут скважины - отдельную таблицу?
Вы хоть решение своё приведите.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799295
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.......с учётом того, что на географическую область может быть более миллиона векторных объектов.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799307
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRВ EAV просто выдать все объекты, которые обладают заданным значение все равно какого свойства.
Постановка задачи напоминает известную русскую народную сказку

Имхо, задача "ищи там - не знаю где" тесно перекликается с известной поговоркой про автоматизацию бардака.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799309
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRНе все. В EAV просто выдать все объекты, которые обладают заданным значение все равно какого свойства.
Это врядли потребуется
ModelRНапример, все, что-хоть как-то связано с данной скважиной. Нужно ли это в Вашей задаче - отдельный вопрос.
Связи это отдельный вопрос... Думаю, будет достаочно просто это сделать в бизнес уровне
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799313
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
т.е. Вы предлагаете на каждый атрибут скважины - отдельную таблицу?
Вы хоть решение своё приведите.
Я предлагаю на каждый класс обектов свою таблицу. Т.е. на все скважины одна таблица, на все реки другая таблица итд. ПЛЮС метаданные похожие на те, которые используются в EAV.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799339
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanov Petro123
т.е. Вы предлагаете на каждый атрибут скважины - отдельную таблицу?
Вы хоть решение своё приведите.
Я предлагаю на каждый класс обектов свою таблицу. Т.е. на все скважины одна таблица, на все реки другая таблица итд. ПЛЮС метаданные похожие на те, которые используются в EAV.
смотри не ошибись в модели. Дорого будет стоить.
- сложно сказать сколько у тебя разных типов.
- перечитай ModelR он дело говорит
- есть ГИС системы и критерии там другие (быстрая выборка по ModelR или координатам)
- разве проще у тебя будет запрос (найти/нарисовать все объекты попавшие в экран (т.е. x_min, .......))
- в ГИС большинство делается классами на клиентах, который в БД "сидят" в БЛОБ.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799376
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
смотри не ошибись в модели. Дорого будет стоить.
- сложно сказать сколько у тебя разных типов.

Это я и сам не знаю. И главное, они будут добавляться в просессе эксплуатации
Petro123
- перечитай ModelR он дело говорит

Про EAV я уже достаточно почитал.
Petro123
- есть ГИС системы и критерии там другие (быстрая выборка по ModelR или координатам)

У меня не совсем GIS, это скорее довесок. Т.е. сами графические объекты с координатами сидят в своих таблицах и я их не трогаю. Будет связь моих объектов с гисовскими через отдельную таблицу с двумя FK. Один на гисовскую таблицу, другой составной псевдо-ключ "Имя таблицы"+ID. Вот тут кстати, "некрасивое" место.
Petro123
- разве проще у тебя будет запрос (найти/нарисовать все объекты попавшие в экран (т.е. x_min, .......))

Такими запросами будет заниматься другое приложение.
Petro123
- в ГИС большинство делается классами на клиентах, который в БД "сидят" в БЛОБ.
Это я знаю.. Имел удольствие писать парсинг этих блобов для Geomedia
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799458
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanov"Имя таблицы"+ID
вот этого Очень не люблю IMHO
PS. Если у тебя это только часть системы, то вообще сложно говорить о чём то.
У меня основная задача БД - выдать по географическим координатам, а у тебя это всё где-то отдельно .

Удачи!
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799538
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
PS. Если у тебя это только часть системы, то вообще сложно говорить о чём то.
У меня основная задача БД - выдать по географическим координатам, а у тебя это всё где-то отдельно
Просто еще нет даже определенности с каим из ГИС то будет работать. Георграфическая привязка это важно, но главное. Например есть еще привязка к административному делению итд. Да и информация может быть связанна, например, с несколькими географическими объектами. Или наоборот.. К одному географическому объекту могут быть привязаны несколько информационных объектов.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799560
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanovУ меня не совсем GIS, это скорее довесок. Т.е. сами графические объекты с координатами сидят в своих таблицах и я их не трогаю. Будет связь моих объектов с гисовскими через отдельную таблицу с двумя FK. Один на гисовскую таблицу, другой составной псевдо-ключ "Имя таблицы"+ID. Вот тут кстати, "некрасивое" место.В управленческих системах таких мест вагон. Тем более, эта сторона связи видимо полностью под контролем Вашего приложения. Но можно сделать единый каталог всех "ГИСоспособных" объектов, и "Имя таблицы" не будет частью ключа.
...
Рейтинг: 0 / 0
ORM снова или тенцер наоброт
    #33799567
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vromanov Petro123
PS. Если у тебя это только часть системы, то вообще сложно говорить о чём то.
У меня основная задача БД - выдать по географическим координатам, а у тебя это всё где-то отдельно
Просто еще нет даже определенности с каим из ГИС то будет работать. Георграфическая привязка это важно, но главное. Например есть еще привязка к административному делению итд. Да и информация может быть связанна, например, с несколькими географическими объектами. Или наоборот.. К одному географическому объекту могут быть привязаны несколько информационных объектов.
но перечень ВЕРОЯТНЫХ запросов то должен быть.
Если их нет, то ВСЁ (все классы клиента) запихать в БЛОБ и делов то.
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ORM снова или тенцер наоброт
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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