|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Необходимо выполнить импорт данных из 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, но я так и не понял, как это там сделать, подскажите пожалуйста? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2020, 18:38 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2020, 18:43 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Как на этом форуме нормально вставлять изображения? И удалять неудачные сообщения??? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2020, 18:45 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2020, 18:56 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Vasiliy_Kashkin Как на этом форуме нормально вставлять изображения? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2020, 19:22 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Тогда вот ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2020, 19:23 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
и вот ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2020, 19:23 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Vasiliy_Kashkin Как выполнить такой импорт, не прибегая к программированию? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2020, 19:23 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Akina, 3 пожалуй маловато будет. ТС-у рекомендую почитать про EAV (Тенцер, 2004) или "продольное хранение" как мы когда-то такое называли в конце 90-х.. тут одна и версий. Ну и таки да, придется выдать в csv, считать, разобрать по группам, и правильно воткнуть куда надо в правильном порядке, проставляя иденты вставленного поперед .. надеюсь понятно выразился. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2020, 22:04 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Arhat109 3 пожалуй маловато будет ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2020, 22:09 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Vasiliy_Kashkin, Никакй дбфорж не спасет в таких случаях.только ручками Сущности кривые, пересмотрите структуру, имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2020, 22:26 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Vasiliy_Kashkin, да ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 06:09 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Вероника Кор, Alex_Ustinov, Ну хорошо. Что тогда посоветуете пересмотреть и в какую сторону? Организовал "продольное" хранение, потому что заказчик хочет иметь возможность сам (через веб-интерфейс) добавлять новые свойства товара, и удалять существующие. Позволять клиентскому коду выполнять ALTER TABLE не есть хорошо, насколько я знаю. Предполагается после обновления данных специальным скриптом переносить их в специальную временную, но уже "нормальную" и "НЕпродольную" таблицу. Arhat109, я правильно понял, что такой вариант хранения был актуален в конце 90-х, и сейчас считается устаревшим? Если да - что пришло на смену ему в современности? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 07:03 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Vasiliy_Kashkin Тогда вот Оставьте 5-6 записей, выгрузите в CSV и приаттачьте к сообщению. Vasiliy_Kashkin и вот Представьте это в виде текстового дамп-файла (набор CREATE TABLE скриптов, с внешними ключами). Добавьте INSERT INTO (по паре записей, чтобы некоторые соответствовали записям из CSV, при этом в CSV должны быть также записи, не имеющие соответствия). Приложите к сообщению. Также - укажите ТОЧНУЮ версию MySQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 07:53 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Vasiliy_Kashkin, Такой вариант хранения имеет как свои достоинства, так и недостатки. "Модное/Устаревшее" - это пожалуйста на женский подиум, там оно больше применимо к рюшечкам, вырезам, материалу декольте, кмк. Достоинства: 1. Возможность динамического изменения набора свойств сущности произвольным способом. 2. Возможность экономного хранения повторяющихся наборов значений, в т.ч. и для разных сущностей. Недостатки: 1. Сложная организация эффективных запросов. Практически всегда это джойн с группировками и having. 2. Снижение скорости чтения примерно в 2 раза, в сравнении с плоскими таблицами и это при высокооптимизированных запросах. В реале при традиционных подходах потери могут достигать и 10 раз. 3. Требует специалиста СУБД крайне высокого уровня. Это даже не "эксперт" .. в общем, надо уметь готовить.. :) 4. Потеря контроля целостности встроенными средствами в реляционную модель. Тока ручками. Часто применяется в крупных развесистых рабочих проектах, достаточно широко. Ну, скажем мне попададется регулярно, особенно в "автопроме", где параметров - многие тыщи.. Есть проекты, где работает "смешанная модель", в автоматическом режиме. Новое создается в EAV, с подсчетом статистики выборок по параметрам, при достижении определенного порога потребности и стабильности хранения - переводится в плоскую часть сущности, таблица которой перестраивается динамически. В целом, EAV это попытка уйти от недостатков реляционной модели .. мир сложнее, проще и интересней чем "реляция" .. :) Таких попыток много. Если решение задачи не может обойтись без EAV, кмк, стоит смотреть в сторону mumps, которое теперь модно зовется Cache кажется. :) P.S. дополнил. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 09:14 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Akina, Csv-то можно трогать и напрямую .. тока выдрать из плоской таблицы нужное и перегруппировать в продольный набор .. надо чутка попотеть. Ну и вставка будет строго последовательной: сначала воткнуть сущности и свойства и тока потом формировать значения, проставляя связанные индексы. Да, свойства тупо не вставишь, их надо мерджить на одно название для разных сущностей, иначе вся прелесть EAV пойдет лесом. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 09:29 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Alex_Ustinov Vasiliy_Kashkin, Никакй дбфорж не спасет в таких случаях.только ручками Сущности кривые, пересмотрите структуру, имхо. Они не кривые. Это просто продольное хранение .. не реляционная модель в реляционной СУБД. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 09:30 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Arhat109 выдрать из плоской таблицы нужное и перегруппировать в продольный набор .. надо чутка попотеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 09:43 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
ТС-у В целом, модные "оконные функции" последних версий Мускуля и его форков кмк могут сильно облегчить решение задачи. Но это не точно, не гонял на практике. Сам только осваиваюсь с ними и то "по мере возникновения задач".. :) В вашу таблицу описания свойств fieldsMeta надо бы добавить ещё "тип значения" {булево, перечисление, целое, текст, дата} для автоподстановки нужного поля(или даже отдельной таблицы значений) этого типа в запрос. Это усложнит сами запросы, но позволит поднять скорость выборок, т.к. сравнение разных типов с текстовым хранением самих значений идет крайне медленно. Соответственно, добавить поля в таблицу значений. Да, она будет очень рыхлой, но сейчас это не узкое место. Ничего лишнего на дисках не будет, как понимаю современную организацию InnoDb и его последователей. Сами значения перед вставкой стоит проверять на "дубликатность" и не хранить в таблице значений "одно и тоже" для разных свойств сущностей. Это как раз и есть "второе достоинство", но требует проработки части "таблица значений" тщательно. Хорошо сворачиваются таким способом особенно - даты. Можно пойти средним путем: выписать заведомо известные свойства (фасовка, упаковка, цвет, вкус и т.д.) в плоскую часть сущностей, а дополнения оставить в продольной части. Свойства стоит "группировать" (организовать в виде дерева), т.к. часто они представляют из себя иерархию.. Стоит сразу задуматься над системой прав доступа к тем или иным свойствам .. кто может смотреть весь набор/группу, а кто нет.. В общем, проектирование БД с продольным хранением задача ещё та, не для "курсовика". :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 09:51 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Akina Arhat109 выдрать из плоской таблицы нужное и перегруппировать в продольный набор .. надо чутка попотеть. "не сильно сложно" .. Вам? Охотно верю. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2020, 09:52 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Vasiliy_Kashkin Вероника Кор, Alex_Ustinov, Ну хорошо. Что тогда посоветуете пересмотреть и в какую сторону? Организовал "продольное" хранение, потому что заказчик хочет иметь возможность сам (через веб-интерфейс) добавлять новые свойства товара, и удалять существующие. Позволять клиентскому коду выполнять ALTER TABLE не есть хорошо, насколько я знаю. Предполагается после обновления данных специальным скриптом переносить их в специальную временную, но уже "нормальную" и "НЕпродольную" таблицу. Arhat109, я правильно понял, что такой вариант хранения был актуален в конце 90-х, и сейчас считается устаревшим? Если да - что пришло на смену ему в современности? Одна таблица Комплектации и несколько справочных таблиц (списков) марка цвет двигатель (может состав комплектации еще) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 10:27 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Для заливки конечно надо написать небольшой скрипт-процедуру, и лучше конечно залить как есть во временную ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 10:36 |
|
Импорт из Excel в базу данных сложной структуры
|
|||
---|---|---|---|
#18+
Нагуглил, что для задач, похожих на мои, есть инструмент Devart SSIS Data Flow Components. Вот только он платный, 30 дневная trial-версия. Найти бы какой-нибудь бесплатный или OpenSource-аналог... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2020, 13:51 |
|
|
start [/forum/topic.php?fid=47&msg=40021615&tid=1828293]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
75ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 451ms |
0 / 0 |