powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / добавить свойство объекту - как бы тут не заморочиться ?
20 сообщений из 20, страница 1 из 1
добавить свойство объекту - как бы тут не заморочиться ?
    #39240733
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
например: таблица карт товара по запчастям из 10 полей
и тут прибивает к сонным берегам малявку добавить свойство Цвет.
Ну разумеется, тут удивляться нечему - цвет, так цвет - пусть цветет.
Но есть сомнение - из 100 кило карт цвет понадобится для одной-двух.
Есть же Descr или на худой конец Инфо - нет клиент намекает
что будет не только Цвет, но еще Запах (задние фонари бывают
красными и желтыми, вонючки бывают бумажные и меловые...
ну понятно короче)

- и как-то всё это должно быть "разложено по полочкам, но видно
в одной большой таблице".

выбор:
1 добавлять поля к таблице карт товара и перерисовывать клиентов -
каждое новое свойство в отдельном столбце и иметь 99.9% заполнение
этих столбцов
2 сделать таблицу свойств, таблицу значений свойств с id_Property,
id_Card, Prop_Value ...и тогда имеем один-ко-многому для каждой карты.
Как визуализировать: сидя на FB 2.5 (про окна вроде пока не знаем)
пока вижу "курсор в триггере" (как не страшно это звучит)
- при добавлении нового свойства или измнении-удалении все
свойства агрегируются в строку и строка падает в одно
поле ДобИнфо - ну и из MSAccess по этому полю нормальную
фильтрацию можно делать...

да-нет ?
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39240734
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SangYongКак визуализировать: сидя на FB 2.5 (про окна вроде пока не знаем) пока
вижу "курсор в триггере" (как не страшно это звучит) - при добавлении нового свойства или
измнении-удалении все свойства агрегируются в строку и строка падает в одно поле ДобИнфо -
ну и из MSAccess по этому полю нормальную фильтрацию можно делать...
Бред. Если твой MS Access не умеет шахматку из коробки - понадобится программист. Если его
нет - не трогай EAV, не по плечу оно тебе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39240736
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39240771
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ох да не, рисовать отчетики в разных форматах, шарахаясь по рекордсетам
эт не проблема, в pdf выкатить а потом его на форму положить или заполнить
пустой шаблон табличной формы - без разницы...можно же прицеплять
к рекодсету строку, полученную из функции, агрегирующей свойства в строку

не производительно...

ну пока в сомнениях
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39242236
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SangYong, при втором варианте задача вырождается в динамическую ORM с описанием в отдельных таблицах классов, членов этих классов с указанием типа данных хранения и интерпретации, ведением таблицы объектов и нескольких таблиц значений членов объекта по типам данных хранения. А-ля платформа "1С".
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39245606
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для атрибута, который нужен для 1% основных записей вполне себе годится пристыкованная как 1-к-1 табличка, приждойнил, где надо и готово.

Если клиент невообразимо туп (затрудняюсь правда придумать, чтоб нельзя было протолкнуть запрос с джойном ), можно навесть вьюху.
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39247628
NikolayV81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyДля атрибута, который нужен для 1% основных записей вполне себе годится пристыкованная как 1-к-1 табличка, приждойнил, где надо и готово.

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

если атрибут не 1 то лучше таблицу атрибутов строки, что-то вроде :
fk_rec_id, attr_type, attr_value
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39247636
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikolayV81лучше таблицу атрибутов строки
Да не потянет он EAV...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39247731
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NikolayV81, приветвую...как на серванте организовать таблциилилиу свойств - это понятно .
важна визуализация данных из одной таблицы на клиенте. Все не нррмативные
свойства я хочу показать в одном поле даташита-вопрос как туда их собирать ...
триннером в строку или процедурой при показе ну или поставлю 3 ФБ и окном.
врпррс нагрузки на сервер
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39247732
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извиняюсь - из метро печатал ....
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39247770
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SangYong, у меня такие вещи собираются в набор строк с полями:
"object_id" ID,
"attr_id" ID,
"sequence" SMALLINT,
"int2" SMALLINT,
"int8" BIGINT,
"blob" BLOB,
"dtm8" TIMESTAMP,
"flt8" DOUBLE PRECISION,
"int4" INTEGER,
"flt4" FLOAT,
"vchr" DESCRIPTION,
"value" DESCRIPTION -- символьное представление значения с учетом интерпретации (то, что будет показано пользователю)

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

P.S. Форумяне, прошу воздержаться от возражений по поводу использования двойных кавычек в квотировании имен полей. ;)
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39247832
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SangYong,

на Aliexpress.com все многообразие товаров представлено названием и цветом. "Цвет" - это просто дополнительная характеристика.
Например - зернистость камня. А все подробности впихиваются в название в виде текста.
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39247921
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SangYongкак на серванте организовать таблциилилиу свойств - это понятно .вот и славно
SangYongважна визуализация данных из одной таблицы на клиенте.типичный запрос с джойном (джойнами в требуемом кол-ве)
SangYongнагрузки на серверсколько миллионов товаров надо отобразить?
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39247939
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SangYongВсе не нррмативные свойства я хочу показать в одном поле даташита-вопрос
как туда их собирать ...
Ну, лично я бы обошёлся простым запросом вообще без джоинов, оконных функций и прочей
дребедени. И оператором присваивания. Но тебе не судьба.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39248064
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чччДА все подробности впихиваются в название в виде текста.

да - именно...вопрос как впихивается...ручками напрямую с ошибками или без...
или всетаки через нармализированные таблицы свойств, на которых висят триггеры
на вставку/обновление (да, знаю, что плохо само по себе и плохо что дублируются
данные) если добавляется к карте новое свойство, кусором проходим по всем
имеющимся свойсвтвам этой карты, составляем строку заново и кладем ее
в описательную часть товара чтобы сделать быструю визуализацию свойств в одном
поле.
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39248072
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, оператор присваивания - что...где...когда...почём ? мож действительно не судьба,
а так хотелось... :)
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39250719
NikolayV81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devSangYong, у меня такие вещи собираются в набор строк с полями:
"object_id" ID,
"attr_id" ID,
"sequence" SMALLINT,
"int2" SMALLINT,
"int8" BIGINT,
"blob" BLOB,
"dtm8" TIMESTAMP,
"flt8" DOUBLE PRECISION,
"int4" INTEGER,
"flt4" FLOAT,
"vchr" DESCRIPTION,
"value" DESCRIPTION -- символьное представление значения с учетом интерпретации (то, что будет показано пользователю)

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

P.S. Форумяне, прошу воздержаться от возражений по поводу использования двойных кавычек в квотировании имен полей. ;)

Если итак известно какой тип сохраняем, то зачем такой зоопарк полей? Есть недоверие к преобразованиям type->str str->type?
p.s. sequence smallint порадовало... тогда уж rec_no называть нужно...
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39251019
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikolayV81Если итак известно какой тип сохраняем, то зачем такой зоопарк полей? Есть недоверие к преобразованиям type->str str->type?
p.s. sequence smallint порадовало... тогда уж rec_no называть нужно...

Это если известно заранее, а не задается разработчиком конфигурации. В моем варианте атрибут класса, его тип, интерпретация, порядок и условия видимости задаются в отдельных таблицах практически в runtime режиме. Уже писал, что это больше похоже на платформу "1С".
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39251596
NikolayV81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devNikolayV81Если итак известно какой тип сохраняем, то зачем такой зоопарк полей? Есть недоверие к преобразованиям type->str str->type?
p.s. sequence smallint порадовало... тогда уж rec_no называть нужно...

Это если известно заранее, а не задается разработчиком конфигурации. В моем варианте атрибут класса, его тип, интерпретация, порядок и условия видимости задаются в отдельных таблицах практически в runtime режиме. Уже писал, что это больше похоже на платформу "1С".

И всё равно не понимаю почему не использовать отдельный класс для преобразования этих типов в строку, ведь по факту может оказаться что в runtime кто-то захочет завести 126-битное целое :)
...
Рейтинг: 0 / 0
добавить свойство объекту - как бы тут не заморочиться ?
    #39251665
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NikolayV81И всё равно не понимаю почему не использовать отдельный класс для преобразования этих типов в строку, ведь по факту может оказаться что в runtime кто-то захочет завести 126-битное целое :)
Потому, что конкретно в моей ORM, чтобы что-то преобразовать в строку, надо знать тип значения (из какой таблицы брать) и что это значение из себя представляет. К примеру, четырехсимвольные теги типа значения и интерпретации значения в таблице описания атрибута содержат 'INT4' и 'IPV4', что означает:
1. Значение находится в таблице VALUE_INT4 (ограничивается полями: object_id, attr_id, value);
2. Значение представляет из себя адрес в таком же формате, как в поле заголовка пакета IPv4 (порядок байт big-endian);
3. Может быть преобразовано специальной ХП в строку вида '###.###.###.###', содержащую десятичные значения октетов IP адреса;

Собственно, некая ХП чтения значения атрибута объекта и занимается всеми этими преобразованиями, помещая полученное значение в поле "value", помимо того, что возвращает значения поля в неизменном виде в одном из полей: "int2", "int8", "blob", "dtm8", "flt8", "int4", "flt4" или "vchr" (из какого поля программе брать значение определено четырехсимвольным тэгом типа значения).

Так понятно?
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / добавить свойство объекту - как бы тут не заморочиться ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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