powered by simpleCommunicator - 2.0.46     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как назвать эту структуру и подход, основанные на EAV?
25 сообщений из 454, страница 16 из 19
Как назвать эту структуру и подход, основанные на EAV?
    #39859180
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет никакого холивара. Я пока вижу - нехватку очебного материала по этим квинтетам.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859190
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНет никакого холивара. Я пока вижу - нехватку очебного материала по этим квинтетам.
Я пока вижу нехватку цели. У любой разработки есть/должна быть некая цель - та задача или класс задач, которые она предназначена решать "действительно хорошо" - в смысле, лучше других. Именно эта цель определяет методику решения и дизайн проекта. РСУБД появились для того, чтобы просто и надёжно работать с данными. NoSQL появились для того, чтобы эффективно заменить РСУБД в некоторых задачах, для которых те слишком уж не подходят. А для чего нужна "квинтетная модель", какую задачу она решает лучше других? Тайна великая есмь.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859224
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда. Согласен.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859259
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще один патчик для учебного примера.

Архитектора прошу сделать review и комментарии.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
CREATE TABLE quintet(
    id       NUMBER GENERATED ALWAYS AS IDENTITY,
    datatype NUMBER NOT NULL,
    parent   NUMBER NOT NULL,
    order    NUMBER NOT NULL,
    value    VARCHAR2(4000)
);

CREATE INDEX datatype_val_idx ON quintet(datatype, value);

CREATE INDEX parent_datatype_idx ON quintet(parent, datatype);

INSERT INTO quintet VALUES (1,1,1,0,'ROOT');
INSERT INTO quintet VALUES (3,3,0,0,'SHORT');
INSERT INTO quintet VALUES (4,4,0,0,'DATETIME');
INSERT INTO quintet VALUES (8,8,0,0,'CHARS');
INSERT INTO quintet VALUES (9,9,0,0,'DATE');
INSERT INTO quintet VALUES (13,13,0,0,'NUMBER');
INSERT INTO quintet VALUES (14,14,0,0,'SIGNED');

INSERT INTO quintet VALUES (349,3,0,0,'Номер');
INSERT INTO quintet VALUES (350,13,0,0,'Бронирование');
INSERT INTO quintet VALUES (351,348,0,0,null);
INSERT INTO quintet VALUES (352,349,0,0,null);
INSERT INTO quintet VALUES (353,351,350,1,null);
INSERT INTO quintet VALUES (355,352,350,2,null);
INSERT INTO quintet VALUES (356,4,0,0,'Дата бронирования');
INSERT INTO quintet VALUES (357,9,0,0,'Заезд');
INSERT INTO quintet VALUES (358,9,0,0,'Выезд');
INSERT INTO quintet VALUES (359,356,350,3,null);
INSERT INTO quintet VALUES (360,357,350,4,null);
INSERT INTO quintet VALUES (361,358,350,5,null);
COMMIT;
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859310
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarermaytonНет никакого холивара. Я пока вижу - нехватку очебного материала по этим квинтетам.
Я пока вижу нехватку цели. У любой разработки есть/должна быть некая цель - та задача или класс задач, которые она предназначена решать "действительно хорошо" - в смысле, лучше других. Именно эта цель определяет методику решения и дизайн проекта. РСУБД появились для того, чтобы просто и надёжно работать с данными. NoSQL появились для того, чтобы эффективно заменить РСУБД в некоторых задачах, для которых те слишком уж не подходят. А для чего нужна "квинтетная модель", какую задачу она решает лучше других? Тайна великая есмь.
Цель — ускорить разработку и снизить порог вхождения для человека с программистским складом ума. Это не понизит планку для программиста, а наоборот повысит её, заставляя больше вникать в бизнес и меньше в тонкости IT.

Я встречаю много людей, которые заявляют, что в своём дельфи или там питоне сделают всё так же быстро. Но на практике у них не получается ни по срокам, ни по функционалу. Основная проблема в том, что им нужно ТЗ, которое они бездумно воплотят точь-в-точь, со всеми косяками аналитики и без интерфейса. Потому что сложно одновременно знать (0) язык программирования и SQL, (1) доскеры/кубернетисы/спринги/свн и CI/CD ботва, на которую забивают, (2) теорию баз данных и лучшые практики, (3) html/css/js/less/gulp/..., (4) бизнес и его нужды, (5) элементарные принципы общения с заказчиком и решения вопросов.

Обычно человека хватает на 2-3 компетенции, даже если у него есть потенциал во всех.
Так вот, для IdeaV должны быть хорошо прокачаны (4) и (5), остальное делается много проще, чем обычно.

Это мой путь, я не навязываю. Сам я IT-энтузиаст с 1989 года, профессионально программирую с 2000. В 2006 году я сделал первый проект на этом подходе и с тех пор его развиваю, не программируя, а разрабатывая (тут большая разница).
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859313
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЕще один патчик для учебного примера.

Архитектора прошу сделать review и комментарии.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
CREATE TABLE quintet(
    id       NUMBER GENERATED ALWAYS AS IDENTITY,
    datatype NUMBER NOT NULL,
    parent   NUMBER NOT NULL,
    order    NUMBER NOT NULL,
    value    VARCHAR2(4000)
);

CREATE INDEX datatype_val_idx ON quintet(datatype, value);

CREATE INDEX parent_datatype_idx ON quintet(parent, datatype);

INSERT INTO quintet VALUES (1,1,1,0,'ROOT');
INSERT INTO quintet VALUES (3,3,0,0,'SHORT');
INSERT INTO quintet VALUES (4,4,0,0,'DATETIME');
INSERT INTO quintet VALUES (8,8,0,0,'CHARS');
INSERT INTO quintet VALUES (9,9,0,0,'DATE');
INSERT INTO quintet VALUES (13,13,0,0,'NUMBER');
INSERT INTO quintet VALUES (14,14,0,0,'SIGNED');

INSERT INTO quintet VALUES (349,3,0,0,'Номер');
INSERT INTO quintet VALUES (350,13,0,0,'Бронирование');
INSERT INTO quintet VALUES (351,348,0,0,null);
INSERT INTO quintet VALUES (352,349,0,0,null);
INSERT INTO quintet VALUES (353,351,350,1,null);
INSERT INTO quintet VALUES (355,352,350,2,null);
INSERT INTO quintet VALUES (356,4,0,0,'Дата бронирования');
INSERT INTO quintet VALUES (357,9,0,0,'Заезд');
INSERT INTO quintet VALUES (358,9,0,0,'Выезд');
INSERT INTO quintet VALUES (359,356,350,3,null);
INSERT INTO quintet VALUES (360,357,350,4,null);
INSERT INTO quintet VALUES (361,358,350,5,null);
COMMIT;


Ну, норм, только добавить нужно:
Код: sql
1.
INSERT INTO quintet VALUES (348,3,0,0,'Гость');
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859326
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyЯ встречаю много людей, которые заявляют, что в своём дельфи или там питоне сделают всё так же быстро. Но на практике у них не получается ни по срокам, ни по функционалу. Основная проблема в том, что им нужно ТЗ, которое они бездумно воплотят точь-в-точь, со всеми косяками аналитики и без интерфейса. Потому что сложно одновременно знать (0) язык программирования и SQL, (1) доскеры/кубернетисы/спринги/свн и CI/CD ботва, на которую забивают, (2) теорию баз данных и лучшые практики, (3) html/css/js/less/gulp/..., (4) бизнес и его нужды, (5) элементарные принципы общения с заказчиком и решения вопросов.

Обычно человека хватает на 2-3 компетенции, даже если у него есть потенциал во всех.
Так вот, для IdeaV должны быть хорошо прокачаны (4) и (5), остальное делается много проще, чем обычно.

Вы не ответили на вопрос. Такую задачу решают конструкторы, 1С, SAP и т.д.

Но какую роль в эффективном решении задачи играют ваши квинтеты, именно ваше решение на квинтетах какой профит даёт? И люди на этом форуме не видят никаких преимуществ и пользы в упор. Даже давая огромную скидку на непонимание некоторых деталей, или сакральное знание, которым обладаете только вы, не видно никаких преимуществ, и никакой пользы, только один вред.

drynnyЭто мой путь, я не навязываю. Сам я IT-энтузиаст с 1989 года, профессионально программирую с 2000. В 2006 году я сделал первый проект на этом подходе и с тех пор его развиваю, не программируя, а разрабатывая (тут большая разница).

Играть и бравировать словами "разрабатываю, а не программирую", "это не-EAV а нечто другое" -- попытка сместить фокус внимания от реальности, характеризуется обыкновенным фанатизмом.

Не нужно. Перед вами не та аудитория, зачем вот это вот всё? Все, значит, идиоты, и на своих питонах делают лабуду, которую вы можете сделать накликав мышкой? Серьёзно? Открыли священный грааль, который не дался ни одной, мировой крупной компании? Ну что вы в самом деле.

Давайте будем реалистами, и говорить о конкретных вещах и оставаться в конструктивном русле инженерных решений и доказательсв. А пока в ваших словах какой-то унылый маркетинг и реклама
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859334
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyПотому что сложно одновременно знать (0) язык программирования и SQL, (1) доскеры/кубернетисы/спринги/свн и CI/CD ботва, на которую забивают, (2) теорию баз данных и лучшые практики, (3) html/css/js/less/gulp/..., (4) бизнес и его нужды, (5) элементарные принципы общения с заказчиком и решения вопросов.

Опять таки, давайте по пунктам.

0. У вас нет ЯП? Нельзя писать логику?
1. У вас нет девопса? "Разработка" на продакшене? Само себя как-нибудь развёртывает?
2. Не нужны компетенции в моделировании данных? Оно само как-нибудь?
3. UI сам себя пишет? UX сам решается?
4. Нужды бизнеса лесом, главное квинтеты?
5. Общаться с заказчиком не нужно, пусть сам тыкает мышью?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859363
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам я IT-энтузиаст с 1989 года
Ууу все бесполезно, голос разума услышан не будет, такие "кулибины" в каждом виде деятельности находятся, они ищут себе сектантов-адептов и садятся им на уши.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859388
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttВы не ответили на вопрос. Такую задачу решают конструкторы, 1С, SAP и т.д.

Я-то ответил, просто вы не хотите увидеть связь.
Как раз квинтеты и позволяют создать конструктор и, в отличие от 1С и SAP, в нём нужно будет намного меньше и проще программировать.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859400
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyЦель — ускорить разработку и снизить порог вхождения для человека с программистским складом ума.
Да, именно эту, простите за выражение, фигню я и ожидал услышать.

"Ускорение разработки" и прочее, о чём Вы писали, не имеет ни малейшего отношения к структуре хранения данных на низовом уровне. Между ними просто нет никакой связи. Вы родили этот маркетинговый буллшит абы что-то сказать, и Ваш ответ показывает - как, собственно, и было очевидно, но из вежливости следовало проверить - что Вашей настоящей целью, как и у других бездумных энтузиастов, было "давай-ка я забабахаю псевдокрутую хрень и потешу ЧСВ, это гораздо интереснее, чем учиться правильно решать задачи".

Насколько я понял, Вы развиваете это решение с 2006-го года, то есть без малого пятнадцать лет. Несмотря на накопленный за это время опыт успешных проектов, Вы не смогли без ошибки решить простейшую задачу со средневзвешенным - это очень наглядно показывает, насколько Ваше решение в действительности облегчает и ускоряет разработку. То, что Вы, получив на выборке чисел 11, 12 и 15 среднее 4.93 (если мне память не изменяет) не остановились и не задумались, всё ли правильно сделали - ещё более наглядно показывает Ваш опыт в работе с данными. Короче говоря, уж извините, но когда Вы говорите о "профессиональной работе" и о "программистском мышлении" - стоит больших усилий удержаться от откровенного хохота.

В общем, действительно, приходите через пять лет и приносите нового лидера мирового рынка RAD. Обещаю, я буду здесь под тем же ником.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859416
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyКак раз квинтеты и позволяют создать конструктор и, в отличие от 1С и SAP, в нём нужно будет намного меньше и проще программировать.

Ну вот нам всем и непонятно, почему и с какой кстати квинтеты позволяют создать конструктор.
В 1С тоже модель динамическая и создаётся мышкой.

Чем тут квинтеты реально помогут?

Вот смотрите, давайте в лоб, если непонятно.

Такая структура таблиц у вас могла бы быть для хранения мета-данных:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
-- типы сущностей
create table ETYPES (
  id int PK,
  name varchar(100),
  description varchar(1000)  
  ...
)

-- типы атрибутов
create table ATYPES (
  id int PK,
  name varchar(100),
  description varchar(1000)  
  ...
)

-- атрибуты типов
create table ATTRIBUTES (
  id int PK,
  eTypeId int FK(ETYPES),
  aTypeId int FK(ATYPES),
  order int,
  name varchar(100),
  description varchar(1000)
  ...
)

-- сущности (данные)
create table ENTITIES (
  id int PK,
  typeId int FK(ETYPES)
  ...
)

-- значения атрибутов сущностей
create table VALUES (
  entityId int FK(ENTITIES),
  attributeId int FK(ATTRIBUTES),
  value varchar(4000)
  ...
)



И она работает! Ещё можно добавить отдельно связи с разными параметрами. Хотя и так связи можно выразить через значения атрибутов-связей. Тут всё понятно, всё семантически разложено и даже поддерживается СУБД. Например, вы не можете указать вместо типа сущности, тип атрибута, или вместо сущности сослаться на тип, СУБД не даст. Такое можно сопровождать, и даже запросы будут проще, чем у вас.

Тут ваши зубодробительные квинтеты можно разложить по таблицам нормальным и понятным образом. Конечно это всё равно хуже нормализованной БД по ряду причин, но со своими плюсами (динамика), однако на порядки лучше ваших квинтетов, которые без каких-либо видимых причин вносят непомерную сложность.

Вы сами видите, до сих пор народ не может въехать толком как ваша байда должна работать. Ну и нафига это всё? До сих пор непонятно, уже какая страница пошла, а вы всё ответить не можете, для чего такой овер-инжениринг был нужен? Какую цель это решает? Ну зачем это всё?

Может вы недостаточно всё усложнили? Может 5 полей -- это много? Давайте как-нибудь в 3 уместим? В идеале конечно, всё в одно поле одной таблицы всё засунуть, давайте идти до конца. Ну зачем эти глупые полумеры? :)
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859420
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Код: sql
1.
2.
3.
4.
5.
6.
7.
-- значения атрибутов сущностей
create table VALUES (
  entityId int FK(ENTITIES),
  attributeId int FK(ATTRIBUTES),
  value varchar(4000)
  ...
)



И вот вам простая математика.

Здесь для того, чтобы задать значение атрибута нужно всего 3 поля.
У вас для этого понадобится 5.
В отдельных случаях поля вашего квинтета лежат мёртвым грузом.

hVostt
Код: sql
1.
2.
3.
4.
5.
6.
-- сущности (данные)
create table ENTITIES (
  id int PK,
  typeId int FK(ETYPES)
  ...
)



А для записи сущности -- всего 2 поля, вместо 5.

С другой стороны, если я хочу добавить информации, которая характеризует все сущности (например, время создания, автора и т.д. и т.п.), я легко могу это сделать здесь. В ваших квинтетах это будут атрибуты динамической модели, в то время как эти атрибуты явно статические.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859462
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Если мы сможем извлечь из квинтетной системы обобщенный интерфейс и внимательно его осмотрим - то мне кажется что на уровне системы хранения может встать обычная документная БД типа Mongo или CouchDb.

Я не берусь это доказывать, но я вижу что квинтеты это даже ... Хм...избыточно что-ли.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859465
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вспомнил. что где-то я это уже в каком-то виде видел, было такое дежавю. Типа похожую, по стилистике конструкцию
=======================
Я.А.Фельдман
Создаем информационные системы
Разработка прикладных информационно-управляющих систем для предприятий, организаций и средней школы — это просто!
с компакт-диском. 2006

http://www.dom-spravka.info/biblio/files_knig/d_um_oss/inf_sistemi.pdf
=======================
Не ну..... что то же работает, внедрено и тп. Ну и дальше, чтобы еще лучше и больше, и быстрее и выше и сильнее!
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859470
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсли мы сможем извлечь из квинтетной системы обобщенный интерфейс и внимательно его осмотрим
То окажется, что и интерфейс тоже не представляет никакой заметной ценности.

maytonмне кажется что на уровне системы хранения может встать обычная документная БД
Или не документная. Или вообще что угодно. Хоть REDIS, хоть Teradata. Имхо, это очевидно.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859553
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostthVostt
Код: sql
1.
2.
3.
4.
5.
6.
7.
-- значения атрибутов сущностей
create table VALUES (
  entityId int FK(ENTITIES),
  attributeId int FK(ATTRIBUTES),
  value varchar(4000)
  ...
)



И вот вам простая математика.

Здесь для того, чтобы задать значение атрибута нужно всего 3 поля.
У вас для этого понадобится 5.
В отдельных случаях поля вашего квинтета лежат мёртвым грузом.

Я пробовал использовать EAV с типизацией. Что-то типа
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create table NUM_VALUES (
  entityId int FK(ENTITIES),
  attributeId int FK(ATTRIBUTES),
  value NUMBER
  ...
);

create table DATE_VALUES (
  entityId int FK(ENTITIES),
  attributeId int FK(ATTRIBUTES),
  value DATE
  ...
);



Не очень изящно зато есть гарантия строгости по типам. И есть надежда что количество типов в системе
- величина достаточно постоянная. 1 раз создал и забыл.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859563
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНе очень изящно зато есть гарантия строгости по типам. И есть надежда что количество типов в системе
- величина достаточно постоянная. 1 раз создал и забыл.

В таком ключе, как не крути, стоит использовать NoSQL. Там эта проблема решена и довольно изящно. Более того, если хранить мета-данные типов и атрибутов отдельно, в самой БД легко хранить данные в коллекциях, где коллекция это имя сущности, динамическое, и поля с именем атрибутов. Вообще шикардос.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859565
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, объяснения, зачем и кому упали эти квинтеты так мы и не получилось, и найти самостоятельными изысканиями тоже не удалось.

Посему объяснения два:

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

2. автор изобрел для себя священную корову, и чем она сложнее внутри, тем для него лучше. с таким я тоже сталкивался, и... чего греха таить, сам подобным болел в глубокой молодости.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859566
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте рисовать API к этой системе. В конце концов идея определяется не квинтетами а методами доступа.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
case class Quintet(
     id       : Int,
     parent   : Int,
     datatype : Int,
     order    : Int,
     value    : String)

trait QuntetBasicApi {
 ...
}


Можно начать с поисков по индексированным полям. И иерархическим запросам.

Архитектор?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859568
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttmaytonНе очень изящно зато есть гарантия строгости по типам. И есть надежда что количество типов в системе
- величина достаточно постоянная. 1 раз создал и забыл.

В таком ключе, как не крути, стоит использовать NoSQL. Там эта проблема решена и довольно изящно. Более того, если хранить мета-данные типов и атрибутов отдельно, в самой БД легко хранить данные в коллекциях, где коллекция это имя сущности, динамическое, и поля с именем атрибутов. Вообще шикардос.
Да я тоже склоняюсь к тому что система тяготеет к NoSQL-ной. Вообще убежден что здесь идея
лежит вне плоскости нормализации. Грубо говоря - наплевать на нормальные формы. Главное - дать
пользователю скорость формошлёпства. И документо-шлёпства.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859585
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДа я тоже склоняюсь к тому что система тяготеет к NoSQL-ной. Вообще убежден что здесь идея
лежит вне плоскости нормализации. Грубо говоря - наплевать на нормальные формы. Главное - дать
пользователю скорость формошлёпства. И документо-шлёпства.

Формошлёпство это понятно, к этому вопросов нет.

Вопрос к способу реализации. Вот эти самые вымышленные квинтеты. Зачем? Как бы и лбом можно гвоздь забить. Зачем??? )))))

Меня даже уже не великий и беспощадный смысл, который вкладывал автор в это. А как он к этому пришёл. Вот как рассуждал?

А что если я возьму байты, разобью их на биты, таак.. первые четыре бита будут тип, ещё четыре парент, если следующий за ним бит 0, а после него 1, то это атрибут, иначе это связь.... Вот как?

Это ж почище изобретения вечного двигателя будет, там хоть цель благая.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859591
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вижу в этом другие направления развития. Например event-store и битемпоральность.
Пишутся события. Мета-команды. Создания базовы типов. Создание таблиц. И собственно
команды фиксации бизнес-операций. Создание гостя. Создание номера. Резервирование гостем
номера. Потом соотв. UPDATES. Освобождение номера. Идеальное бэкапирование. Идеальная
изоляция транзакций. Конкуренции нет вообще. Репликация упрощается.

Зачем сливать всё в квинтеты? ХЗ. С этой точки зрения всё логично. Я-бы еще добавил
Timestamp и тип операции (UPDATE/DELETE/INSERT).

Вот как-то так.

Но если строить классическую модель без event-store то идея Хвоста мне больше нравится.
Лучше иметь десяток специализированных простых таблиц которые покрывают любую
предметную область чем 1 универсальную со сложной семантикой которая ХЗ
как себя ведет под нагрузкой.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859594
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonДавайте рисовать API к этой системе. В конце концов идея определяется не квинтетами а методами доступа.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
case class Quintet(
     id       : Int,
     parent   : Int,
     datatype : Int,
     order    : Int,
     value    : String)

trait QuntetBasicApi {
 ...
}


Можно начать с поисков по индексированным полям. И иерархическим запросам.

Архитектор?
Квинтет, он же для другого. Пользователь не пишет код и не знает ничего о квинтетах.
И классы не определяет, а задает нужные объекты в редакторе типов:
(подчиненные и связанные объекты расположены справа и распространяются вниз)

...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859596
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМеня даже уже не великий и беспощадный смысл, который вкладывал автор в это. А как он к этому пришёл. Вот как рассуждал?
Да как обычно в таких случаях. Начинает знакомиться с предметной областью. Читает SQL. Думает: как бы круто программировать? Натыкается на EAV: о, круто. Особенно читая статью другого такого же ламера. Пробует. Плевать, что медленно и неудобно, зато один раз напишу крутой системный софт - это же интересно - и всё будет летать. Блин. Не летает. Тогда подрихтую модель, чтобы залетало. Совсем круто! Правда, не летает, но зато совсем своё, дайте мне нобелевку!
...
Рейтинг: 0 / 0
25 сообщений из 454, страница 16 из 19
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как назвать эту структуру и подход, основанные на EAV?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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