Някой добър с Excel и MySQL?

Blinky

Owner
Здравейте, приятели.

Нужно ми е малко помощ от някой разбирач на Excel и MySQL. Става въпрос за наливане в база на едни стойности като преди това се мапнат. Вярвам, че може да се изпълни по този начин. Лошото е, че се иска адски много гледане и навързване на нещата. Не търся някой да ми го направи, а да даде идея или ако го е правил, да покаже някой друг трик за по-бързото наливане.

Отворен съм за въпроси. Мерси предварително.

Поздрави,
 

wbg

Active Member
Експорт от ексел в csv и после с малко php да си ги манипулираш както желаеш?
 

hahovec

Active Member
mqsql e база данни логиката трябва да е в php-то или какъвто език ще ползваш. Първо пишеш логиката и след това виждаш какви таблици ти трябва, след като имаш таблиците в базата ги пълниш една по една.
 

Blinky

Owner
mqsql e база данни логиката трябва да е в php-то или какъвто език ще ползваш. Първо пишеш логиката и след това виждаш какви таблици ти трябва, след като имаш таблиците в базата ги пълниш една по една.
Ясно, ясно. Логиката е к*рава, щото е изсипано по много тъп начин, а реално ми трябват сумарни неща по критерии, който трябва по око да гледам и напасвам в тия редове и колони - над 27К. Аз да захапя веднъж, ще ги го напиша. Но малко трудно тръгвам. :)
 

imagination

Active Member
Здравейте.
Аз правя така. Импортирам я RAW в една темп таблица. След това с помощта на SQL-a обработвам допълнително и разпределям данните по таблицата или таблиците. Няма нужда да се минава през друг език (php/bash/etc). Веднъж импортирани данните може да се тества и настройва много по-лесно.
Поздрави.
 

Blinky

Owner
Аз почнах да ги обработвам през Excel-а направо, за да мога после с по-малко SQL query-та да изманипулирам нещата. Би ли ударил едно рамо за съвет, именно първата ти стъпка явно е решението. :)
 

imagination

Active Member
Сподели по-конкретно какви са проблемите. Примерно имам екселска таблица с "еди каква си структура" и трябва да се получи "тази" база от данни. Като второто не е задължително, нека да следваме данните.
Поздрави.
 

Torbalan Trolski

Well-Known Member
@Blinky ако е онази глупост, която ми показва преди, не се забърквай с никакви ексели.
Циклиш по първата таблица и наливаш една част от данните, после циклиш втората и третата, като връзваш по секцията от първата таблица агрегираните данни.
Нищо сложно, обаче хамалогията по мапрването си ебала майката.
А разбира се най-добре e да се застреля човека изумувал дизайна пресловутата БД :D
 

Blinky

Owner
@Torbalan Trolski , да същата гняс.

Ето какво представлява. Имам и csv файлове и txt, в зависимост какво ще е по-подходящи. Идеята е да се налеят в база, която е има по-общи параметри от дадените в тези файлове, демек както каза Торбала - цикли се и се събират, и след това се налива. Проблемът е с това, че не ми идва на ум бърз метод точно за това мапване. Става дума за наливане на гласове по райони, секции от избори. Структурата на файла може да се види от тук: https://results.cik.bg/pvrnr2016/tur1/csv.html

Така изглежда иначе с протоколи: https://results.cik.bg/pvrnr2016/tur2/protokoli_pr/01/index.html

Ето в базата как изглеждат нещата:

1.png

Само да кажа, за хората оптимисти - "+" е разделител на стойностите в една колона. :) Ще се радвам да дам повече инфо, както казах, трябва ми само да захапя с идеята да се вържат като стойности нещата от две различни по натура структури.
 

imagination

Active Member
Първо нормализирайте базата, ако естествено има тази възможност. Ако няма - за наказание накарайте този който я е измислил да ги вкара :)
Намапване на какво трябва да се направи ? регион/община/секция етц ?
 

Blinky

Owner
табличката е елементарна, какво те притеснява?
Да ти я дам да си поиграеш малко с нея. :) Таблицата е ОК, не е проектирана за файловете, файловете са детайли, там имаш сумиране и обединяване, което е тегаво. Разгледай линковете над таблицата и виж за какво пиша.

@imagination , няма да може. Ще счупи всичко друго. Този дето я е правел в момента не е наоколо. :) Иначе трябваше да бъде абониран за тази услуга до живот. Намапването трябва да се осъществи по община - населено място - секции - гласове. И прилежащите към тях стойности -

Брой на избирателите според избирателния списък при предаването му на СИК

Брой на избирателите, вписани в допълнителната страница (под чертата) на избирателния списък в изборния ден

Брой на избирателите в допълнителния избирателен списък

Брой на регистрираните кандидатски листи на партии, коалиции

Брой на гласувалите избиратели според положените подписи в избирателния списък

Брой на намерените в избирателните урни бюлетини

Брой на недействителните гласове (бюлетини)

Брой на действителните гласове (бюлетини)
За всеки един ред. Плетеница е. Имаш във файла над 27К редове, в базата са над 4К. Демек цялото свиване идва от това, че файла е разпределен по секции (един град може да има над 100 секции), а в базата е по нас. място. Или казано по друг начин - сумиране на секции и техните стойности, изсипващи се в нас. място. Нямаме "по-дробна" стойност.

Всяка помощ ще е добре дошла. ;)
 

Sky

Well-Known Member
Е ти сам не си помагаш.
Още в първия пост трябваше да има семпъл с всичката информация. Няма кой да врачува.
 

Blinky

Owner
Е ти сам не си помагаш.
Още в първия пост трябваше да има семпъл с всичката информация. Няма кой да врачува.
Да, знам, но трябва да почна леко. Просто в началото ме интересуваха 1-2 неща - дали може да се мине без някой скрипт, видях че го правят и така и така. И в последствие да се даде напътствие. :)
 

Torbalan Trolski

Well-Known Member
Да, знам, но трябва да почна леко. Просто в началото ме интересуваха 1-2 неща - дали може да се мине без някой скрипт, видях че го правят и така и така. И в последствие да се даде напътствие. :)
Казах ти - трябва да изциклиш 3 файла, имаш по какво да вържеш данните.

Ако си мислиш, че ще намериш магически начин с каквото и да е да ти мапне бозата от файлове в още по-голямата боза в БД - няма да стане. Колона по колона кунками.

Да не говорим, че шибаните файлове нямат хедъри и за да е пълно забавлението поне единия по мои спомени беше с полуопределен брой колони :D
 

Горе