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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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