Задача о хранении объекта и его свойств
Постановка: см. пост вторника
Решение:
Для хранения технических полей используем основную таблицу сущности:
create table client(
client_id number(38) not null,
is_active number(1) not null,
status number(10) not null,
create_dtime date not null
);
Какие есть варианты хранение бизнесовых свойств объекта:
1️⃣ горизонтальное хранение;
2️⃣ вертикальное хранение (EAV);
3️⃣ другие более экзотические.
Постараюсь объяснить “на пальцах”. Допустим нам надо хранить всего 4е свойства: ФИО + ДР. Причем, отчество не обязательно.
1️⃣ Горизонтальное
Все свойства объекта располагаются в одной строке. Одно свойство = одному столбцу.
create table client_data_h(
client_id number(38) not null,
first_name varchar2(200 char) not null,
last_name varchar2(200 char) not null,
middle_name varchar2(200 char),
birth_day date not null
);
insert into client_data_h values(777, 'Иван', 'Иванов', null, date'1984-01-21');
Для поиска - индексируется поле(я).
Классика 😊