выбрать структуру баз данных

185
05 января 2019, 04:00

задача в примитивном виде: есть человек, для него хранится name и email. при этом могут добавиться другие данные, например "телефон". записей будет много: около 10 миллионов.

для структуры есть 2 варианта:

1 вариант:

таблица полей field (список полей: перечисляются имя, телефон, etc),

таблица значений values (список значений полей, item_id указывает на связующий элемент, field_id указывает на поле, value - значение)

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

в этом случае для одной записи item будет создано (1*количество полей) записей в values, при большом количестве полей таблица values будет разрастаться очень быстро.

2 вариант:

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

какой вариант лучше выбрать, что ещё можно учесть?

Answer 1

для примера:

CREATE TABLE testik.human (
  human_id INT(20) NOT NULL AUTO_INCREMENT,
  first_name VARCHAR(50) NOT NULL,
  last_name VARCHAR(50) NOT NULL,
  floor BIT(1) NOT NULL,
  PRIMARY KEY (human_id)
)
CREATE TABLE testik.email (
  email_id INT(20) NOT NULL AUTO_INCREMENT,
  email_address VARCHAR(255) NOT NULL,
  human_id INT(20) NOT NULL,
  PRIMARY KEY (email_id, email_address)
)
ALTER TABLE testik.email 
  ADD CONSTRAINT FK_email_id FOREIGN KEY (human_id)
    REFERENCES testik.human(human_id);
CREATE TABLE testik.phone (
  phone_id INT(20) NOT NULL AUTO_INCREMENT,
  number_phone VARCHAR(50) NOT NULL,
  numan_id INT(20) NOT NULL,
  PRIMARY KEY (phone_id)
)
ALTER TABLE testik.phone 
  ADD CONSTRAINT FK_phone_id FOREIGN KEY (numan_id)
    REFERENCES testik.human(human_id);
READ ALSO
Сложный запрос sql в 2 и более БД

Сложный запрос sql в 2 и более БД

Я новичок в программировании, мне нужно написать запрос в MySQL базу, у меня есть список нужных таблиц (который я получил запросом из схемы),...

227
Как сделать полный круг градиентом html+css

Как сделать полный круг градиентом html+css

Пробовал разные варианты из интернета, но они только работали с полукругом, те

193
Анимация с radiobutton. Смена фона по клику

Анимация с radiobutton. Смена фона по клику

Нужно сделать такую переключалку на чистом css, без js

220
Скругленная фигура css

Скругленная фигура css

как это сделать, и чтобы можно было вставить в блок и растягивать по ширине

182