powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Импорт из Excel в базу данных сложной структуры
23 сообщений из 23, страница 1 из 1
Импорт из Excel в базу данных сложной структуры
    #40021501
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо выполнить импорт данных из Excel-таблицы следующей структуры:
[img=" https://drive.google.com/file/d/1h1CG-dudC8HCuICADra2JX2W0Dcv24s4/view?usp=sharing%22%5D]https://drive.google.com/file/d/1h1CG-dudC8HCuICADra2JX2W0Dcv24s4/view?usp=sharing"]
в MySQL-базу данных следующей структуры:
[img=" https://drive.google.com/file/d/1iAY2VKiMU1lwC8QZUTXUWRdT3g3QgrkI/view?usp=sharing%22%5D]https://drive.google.com/file/d/1iAY2VKiMU1lwC8QZUTXUWRdT3g3QgrkI/view?usp=sharing"]
(то есть где значения характеристик автомобиля (кроме названия и цены) хранятся по строкам в таблице fieldsdata (в IntVal или TextVal в зависимости от типа данных), таблица fieldsmeta хранит заголовок характеристики и некоторые её метаданные (которые на этапе импорта можно не заполнять), таблица cars - автомобили с характеристиками Name (название) и Price (цена).

Как выполнить такой импорт, не прибегая к программированию?
Какие есть для этого инструменты?
Слышал, что так может dbForge for MySQL, но я так и не понял, как это там сделать, подскажите пожалуйста?
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021502
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021503
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как на этом форуме нормально вставлять изображения? И удалять неудачные сообщения???
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021509
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На случай если изображения не откроются с гугл-диска:

...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021514
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliy_Kashkin
Как на этом форуме нормально вставлять изображения?
Аттачить с локального диска к сообщению.
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021515
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда вот
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021516
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вот
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021517
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliy_Kashkin
Как выполнить такой импорт, не прибегая к программированию?
Никак. Как минимум 3 запроса придётся написать. А ещё придётся исходную таблицу сохранить в CSV.
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021550
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

3 пожалуй маловато будет. ТС-у рекомендую почитать про EAV (Тенцер, 2004) или "продольное хранение" как мы когда-то такое называли в конце 90-х.. тут одна и версий.

Ну и таки да, придется выдать в csv, считать, разобрать по группам, и правильно воткнуть куда надо в правильном порядке, проставляя иденты вставленного поперед .. надеюсь понятно выразился. :)
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021552
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109
3 пожалуй маловато будет
CSV можно использовать напрямую, через CSV storage engine . Так что хватит.
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021557
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliy_Kashkin,

Никакй дбфорж не спасет в таких случаях.только ручками
Сущности кривые, пересмотрите структуру, имхо.
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021608
Vasiliy_Kashkin,
да
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021610
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вероника Кор,
Alex_Ustinov,

Ну хорошо. Что тогда посоветуете пересмотреть и в какую сторону?

Организовал "продольное" хранение, потому что заказчик хочет иметь возможность сам (через веб-интерфейс) добавлять новые свойства товара, и удалять существующие. Позволять клиентскому коду выполнять ALTER TABLE не есть хорошо, насколько я знаю.

Предполагается после обновления данных специальным скриптом переносить их в специальную временную, но уже "нормальную" и "НЕпродольную" таблицу.

Arhat109,
я правильно понял, что такой вариант хранения был актуален в конце 90-х, и сейчас считается устаревшим? Если да - что пришло на смену ему в современности?
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021615
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliy_Kashkin
Тогда вот

Оставьте 5-6 записей, выгрузите в CSV и приаттачьте к сообщению.
Vasiliy_Kashkin
и вот

Представьте это в виде текстового дамп-файла (набор CREATE TABLE скриптов, с внешними ключами). Добавьте INSERT INTO (по паре записей, чтобы некоторые соответствовали записям из CSV, при этом в CSV должны быть также записи, не имеющие соответствия). Приложите к сообщению.

Также - укажите ТОЧНУЮ версию MySQL.
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021623
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliy_Kashkin,

Такой вариант хранения имеет как свои достоинства, так и недостатки. "Модное/Устаревшее" - это пожалуйста на женский подиум, там оно больше применимо к рюшечкам, вырезам, материалу декольте, кмк.

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

Недостатки:
1. Сложная организация эффективных запросов. Практически всегда это джойн с группировками и having.
2. Снижение скорости чтения примерно в 2 раза, в сравнении с плоскими таблицами и это при высокооптимизированных запросах. В реале при традиционных подходах потери могут достигать и 10 раз.
3. Требует специалиста СУБД крайне высокого уровня. Это даже не "эксперт" .. в общем, надо уметь готовить.. :)
4. Потеря контроля целостности встроенными средствами в реляционную модель. Тока ручками.

Часто применяется в крупных развесистых рабочих проектах, достаточно широко. Ну, скажем мне попададется регулярно, особенно в "автопроме", где параметров - многие тыщи..

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

В целом, EAV это попытка уйти от недостатков реляционной модели .. мир сложнее, проще и интересней чем "реляция" .. :) Таких попыток много. Если решение задачи не может обойтись без EAV, кмк, стоит смотреть в сторону mumps, которое теперь модно зовется Cache кажется. :)

P.S. дополнил.
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021624
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Csv-то можно трогать и напрямую .. тока выдрать из плоской таблицы нужное и перегруппировать в продольный набор .. надо чутка попотеть. Ну и вставка будет строго последовательной: сначала воткнуть сущности и свойства и тока потом формировать значения, проставляя связанные индексы.
Да, свойства тупо не вставишь, их надо мерджить на одно название для разных сущностей, иначе вся прелесть EAV пойдет лесом.
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021625
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
Vasiliy_Kashkin,

Никакй дбфорж не спасет в таких случаях.только ручками
Сущности кривые, пересмотрите структуру, имхо.


Они не кривые. Это просто продольное хранение .. не реляционная модель в реляционной СУБД. :)
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021634
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109
выдрать из плоской таблицы нужное и перегруппировать в продольный набор .. надо чутка попотеть.
Вполне реальная процедура. Более того, я делал (не у себя - мне проще раздрючить на отдельные файлы снаружи и заливать по одному,- кому-то по просьбе в каком-то форуме, счас уже не помню где). И даже не сказать что сильно сложно.
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021642
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС-у
В целом, модные "оконные функции" последних версий Мускуля и его форков кмк могут сильно облегчить решение задачи. Но это не точно, не гонял на практике. Сам только осваиваюсь с ними и то "по мере возникновения задач".. :)

В вашу таблицу описания свойств fieldsMeta надо бы добавить ещё "тип значения" {булево, перечисление, целое, текст, дата} для автоподстановки нужного поля(или даже отдельной таблицы значений) этого типа в запрос. Это усложнит сами запросы, но позволит поднять скорость выборок, т.к. сравнение разных типов с текстовым хранением самих значений идет крайне медленно.

Соответственно, добавить поля в таблицу значений. Да, она будет очень рыхлой, но сейчас это не узкое место. Ничего лишнего на дисках не будет, как понимаю современную организацию InnoDb и его последователей.

Сами значения перед вставкой стоит проверять на "дубликатность" и не хранить в таблице значений "одно и тоже" для разных свойств сущностей. Это как раз и есть "второе достоинство", но требует проработки части "таблица значений" тщательно. Хорошо сворачиваются таким способом особенно - даты.

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

Свойства стоит "группировать" (организовать в виде дерева), т.к. часто они представляют из себя иерархию..

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

В общем, проектирование БД с продольным хранением задача ещё та, не для "курсовика". :)
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021644
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Arhat109
выдрать из плоской таблицы нужное и перегруппировать в продольный набор .. надо чутка попотеть.
Вполне реальная процедура. Более того, я делал (не у себя - мне проще раздрючить на отдельные файлы снаружи и заливать по одному,- кому-то по просьбе в каком-то форуме, счас уже не помню где). И даже не сказать что сильно сложно.


"не сильно сложно" .. Вам? Охотно верю. :)
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021982
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasiliy_Kashkin
Вероника Кор,
Alex_Ustinov,

Ну хорошо. Что тогда посоветуете пересмотреть и в какую сторону?

Организовал "продольное" хранение, потому что заказчик хочет иметь возможность сам (через веб-интерфейс) добавлять новые свойства товара, и удалять существующие. Позволять клиентскому коду выполнять ALTER TABLE не есть хорошо, насколько я знаю.

Предполагается после обновления данных специальным скриптом переносить их в специальную временную, но уже "нормальную" и "НЕпродольную" таблицу.

Arhat109,
я правильно понял, что такой вариант хранения был актуален в конце 90-х, и сейчас считается устаревшим? Если да - что пришло на смену ему в современности?
я посоветую вникнуть в тему. Сущностью вряд ли может быть объект (ауди+цена 1млн, ) цена это свойство комплектации, а не марки машины.
Одна таблица Комплектации и несколько справочных таблиц (списков) марка цвет двигатель (может состав комплектации еще)
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40021985
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для заливки конечно надо написать небольшой скрипт-процедуру, и лучше конечно залить как есть во временную
...
Рейтинг: 0 / 0
Импорт из Excel в базу данных сложной структуры
    #40022764
Vasiliy_Kashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нагуглил, что для задач, похожих на мои, есть инструмент Devart SSIS Data Flow Components. Вот только он платный, 30 дневная trial-версия. Найти бы какой-нибудь бесплатный или OpenSource-аналог...
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Импорт из Excel в базу данных сложной структуры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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