Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Проектирование БД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 10 11 12 13 14 15 [16] 17 18 19   вперед  Ctrl
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41889
Нет никакого холивара. Я пока вижу - нехватку очебного материала по этим квинтетам.
9 сен 19, 09:58    [21966582]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 58486
Блог
mayton
Нет никакого холивара. Я пока вижу - нехватку очебного материала по этим квинтетам.

Я пока вижу нехватку цели. У любой разработки есть/должна быть некая цель - та задача или класс задач, которые она предназначена решать "действительно хорошо" - в смысле, лучше других. Именно эта цель определяет методику решения и дизайн проекта. РСУБД появились для того, чтобы просто и надёжно работать с данными. NoSQL появились для того, чтобы эффективно заменить РСУБД в некоторых задачах, для которых те слишком уж не подходят. А для чего нужна "квинтетная модель", какую задачу она решает лучше других? Тайна великая есмь.
9 сен 19, 10:17    [21966596]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41889
Мда. Согласен.
9 сен 19, 11:12    [21966647]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41889
Еще один патчик для учебного примера.

Архитектора прошу сделать review и комментарии.
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;
9 сен 19, 11:53    [21966697]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
drynny
Member

Откуда: Владимир
Сообщений: 209
softwarer
mayton
Нет никакого холивара. Я пока вижу - нехватку очебного материала по этим квинтетам.

Я пока вижу нехватку цели. У любой разработки есть/должна быть некая цель - та задача или класс задач, которые она предназначена решать "действительно хорошо" - в смысле, лучше других. Именно эта цель определяет методику решения и дизайн проекта. РСУБД появились для того, чтобы просто и надёжно работать с данными. 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 году я сделал первый проект на этом подходе и с тех пор его развиваю, не программируя, а разрабатывая (тут большая разница).
9 сен 19, 13:36    [21966811]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
drynny
Member

Откуда: Владимир
Сообщений: 209
mayton
Еще один патчик для учебного примера.

Архитектора прошу сделать review и комментарии.
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;

Ну, норм, только добавить нужно:
INSERT INTO quintet VALUES (348,3,0,0,'Гость');
9 сен 19, 13:40    [21966817]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
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 а нечто другое" -- попытка сместить фокус внимания от реальности, характеризуется обыкновенным фанатизмом.

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

Давайте будем реалистами, и говорить о конкретных вещах и оставаться в конструктивном русле инженерных решений и доказательсв. А пока в ваших словах какой-то унылый маркетинг и реклама
9 сен 19, 14:08    [21966846]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

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


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

0. У вас нет ЯП? Нельзя писать логику?
1. У вас нет девопса? "Разработка" на продакшене? Само себя как-нибудь развёртывает?
2. Не нужны компетенции в моделировании данных? Оно само как-нибудь?
3. UI сам себя пишет? UX сам решается?
4. Нужды бизнеса лесом, главное квинтеты?
5. Общаться с заказчиком не нужно, пусть сам тыкает мышью?
9 сен 19, 14:19    [21966860]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
iOracleDev
Member

Откуда:
Сообщений: 303
Сам я IT-энтузиаст с 1989 года

Ууу все бесполезно, голос разума услышан не будет, такие "кулибины" в каждом виде деятельности находятся, они ищут себе сектантов-адептов и садятся им на уши.
9 сен 19, 14:47    [21966906]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
drynny
Member

Откуда: Владимир
Сообщений: 209
hVostt
Вы не ответили на вопрос. Такую задачу решают конструкторы, 1С, SAP и т.д.

Я-то ответил, просто вы не хотите увидеть связь.
Как раз квинтеты и позволяют создать конструктор и, в отличие от 1С и SAP, в нём нужно будет намного меньше и проще программировать.
9 сен 19, 15:21    [21966957]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 58486
Блог
drynny
Цель — ускорить разработку и снизить порог вхождения для человека с программистским складом ума.

Да, именно эту, простите за выражение, фигню я и ожидал услышать.

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

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

В общем, действительно, приходите через пять лет и приносите нового лидера мирового рынка RAD. Обещаю, я буду здесь под тем же ником.
9 сен 19, 15:36    [21966979]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
drynny
Как раз квинтеты и позволяют создать конструктор и, в отличие от 1С и SAP, в нём нужно будет намного меньше и проще программировать.


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

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

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

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

-- типы сущностей
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 уместим? В идеале конечно, всё в одно поле одной таблицы всё засунуть, давайте идти до конца. Ну зачем эти глупые полумеры? :)
9 сен 19, 15:58    [21967014]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

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


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

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

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


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

С другой стороны, если я хочу добавить информации, которая характеризует все сущности (например, время создания, автора и т.д. и т.п.), я легко могу это сделать здесь. В ваших квинтетах это будут атрибуты динамической модели, в то время как эти атрибуты явно статические.
9 сен 19, 16:02    [21967019]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41889
hVostt,

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

Я не берусь это доказывать, но я вижу что квинтеты это даже ... Хм...избыточно что-ли.
9 сен 19, 17:18    [21967096]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
Vladimir Baskakov
Member

Откуда:
Сообщений: 1977
Вспомнил. что где-то я это уже в каком-то виде видел, было такое дежавю. Типа похожую, по стилистике конструкцию
=======================
Я.А.Фельдман
Создаем информационные системы
Разработка прикладных информационно-управляющих систем для предприятий, организаций и средней школы — это просто!
с компакт-диском. 2006

http://www.dom-spravka.info/biblio/files_knig/d_um_oss/inf_sistemi.pdf
=======================
Не ну..... что то же работает, внедрено и тп. Ну и дальше, чтобы еще лучше и больше, и быстрее и выше и сильнее!
9 сен 19, 17:23    [21967101]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 58486
Блог
mayton
Если мы сможем извлечь из квинтетной системы обобщенный интерфейс и внимательно его осмотрим

То окажется, что и интерфейс тоже не представляет никакой заметной ценности.

mayton
мне кажется что на уровне системы хранения может встать обычная документная БД

Или не документная. Или вообще что угодно. Хоть REDIS, хоть Teradata. Имхо, это очевидно.
9 сен 19, 17:35    [21967116]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
mayton
Member

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


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

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

Я пробовал использовать EAV с типизацией. Что-то типа
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 раз создал и забыл.
9 сен 19, 19:32    [21967231]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
mayton
Не очень изящно зато есть гарантия строгости по типам. И есть надежда что количество типов в системе
- величина достаточно постоянная. 1 раз создал и забыл.


В таком ключе, как не крути, стоит использовать NoSQL. Там эта проблема решена и довольно изящно. Более того, если хранить мета-данные типов и атрибутов отдельно, в самой БД легко хранить данные в коллекциях, где коллекция это имя сущности, динамическое, и поля с именем атрибутов. Вообще шикардос.
9 сен 19, 20:09    [21967242]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
В общем, объяснения, зачем и кому упали эти квинтеты так мы и не получилось, и найти самостоятельными изысканиями тоже не удалось.

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

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

2. автор изобрел для себя священную корову, и чем она сложнее внутри, тем для него лучше. с таким я тоже сталкивался, и... чего греха таить, сам подобным болел в глубокой молодости.
9 сен 19, 20:12    [21967244]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41889
Давайте рисовать API к этой системе. В конце концов идея определяется не квинтетами а методами доступа.

case class Quintet(
     id       : Int,
     parent   : Int,
     datatype : Int,
     order    : Int,
     value    : String)

trait QuntetBasicApi {
 ...
}

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

Архитектор?
9 сен 19, 20:15    [21967246]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41889
hVostt
mayton
Не очень изящно зато есть гарантия строгости по типам. И есть надежда что количество типов в системе
- величина достаточно постоянная. 1 раз создал и забыл.


В таком ключе, как не крути, стоит использовать NoSQL. Там эта проблема решена и довольно изящно. Более того, если хранить мета-данные типов и атрибутов отдельно, в самой БД легко хранить данные в коллекциях, где коллекция это имя сущности, динамическое, и поля с именем атрибутов. Вообще шикардос.

Да я тоже склоняюсь к тому что система тяготеет к NoSQL-ной. Вообще убежден что здесь идея
лежит вне плоскости нормализации. Грубо говоря - наплевать на нормальные формы. Главное - дать
пользователю скорость формошлёпства. И документо-шлёпства.
9 сен 19, 20:20    [21967252]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
hVostt
Member

Откуда:
Сообщений: 15840
mayton
Да я тоже склоняюсь к тому что система тяготеет к NoSQL-ной. Вообще убежден что здесь идея
лежит вне плоскости нормализации. Грубо говоря - наплевать на нормальные формы. Главное - дать
пользователю скорость формошлёпства. И документо-шлёпства.


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

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

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

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

Это ж почище изобретения вечного двигателя будет, там хоть цель благая.
9 сен 19, 21:18    [21967283]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
mayton
Member

Откуда: loopback
Сообщений: 41889
Я вижу в этом другие направления развития. Например event-store и битемпоральность.
Пишутся события. Мета-команды. Создания базовы типов. Создание таблиц. И собственно
команды фиксации бизнес-операций. Создание гостя. Создание номера. Резервирование гостем
номера. Потом соотв. UPDATES. Освобождение номера. Идеальное бэкапирование. Идеальная
изоляция транзакций. Конкуренции нет вообще. Репликация упрощается.

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

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

Но если строить классическую модель без event-store то идея Хвоста мне больше нравится.
Лучше иметь десяток специализированных простых таблиц которые покрывают любую
предметную область чем 1 универсальную со сложной семантикой которая ХЗ
как себя ведет под нагрузкой.
9 сен 19, 21:37    [21967291]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
drynny
Member

Откуда: Владимир
Сообщений: 209
mayton
Давайте рисовать API к этой системе. В конце концов идея определяется не квинтетами а методами доступа.

case class Quintet(
     id       : Int,
     parent   : Int,
     datatype : Int,
     order    : Int,
     value    : String)

trait QuntetBasicApi {
 ...
}

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

Архитектор?

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

Картинка с другого сайта.
9 сен 19, 21:45    [21967297]     Ответить | Цитировать Сообщить модератору
 Re: Как назвать эту структуру и подход, основанные на EAV?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 58486
Блог
hVostt
Меня даже уже не великий и беспощадный смысл, который вкладывал автор в это. А как он к этому пришёл. Вот как рассуждал?

Да как обычно в таких случаях. Начинает знакомиться с предметной областью. Читает SQL. Думает: как бы круто программировать? Натыкается на EAV: о, круто. Особенно читая статью другого такого же ламера. Пробует. Плевать, что медленно и неудобно, зато один раз напишу крутой системный софт - это же интересно - и всё будет летать. Блин. Не летает. Тогда подрихтую модель, чтобы залетало. Совсем круто! Правда, не летает, но зато совсем своё, дайте мне нобелевку!
9 сен 19, 21:48    [21967299]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 10 11 12 13 14 15 [16] 17 18 19   вперед  Ctrl
Все форумы / Проектирование БД Ответить