powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Преобразование таблицы в 1нф (вопрос новичка)
21 сообщений из 21, страница 1 из 1
Преобразование таблицы в 1нф (вопрос новичка)
    #38915057
UlvHare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Имеется таблица:
IDRegionFauna1Xalx golAll. sibirica; Ap. agrarius; Cl. rufocanus; Cl. rutilus; Cr. barabensis; D. sagitta; Las. brandtii; M. sibirica; Mer. unguiculatus; Micr. minutus; Microt. gregalis; Microt. maximowiczii; Microt. mongolicus; Mus musculus; Myosp. psilurus;2Cagaan-OvooAll. sibirica; Alt. semicanus; Ap. peninsulae; Cr. barabensis; Las. brandtii; M. sibirica; Mer. unguiculatus; Micr. minutus; Microt. gregalis; Microt. mongolicus; Mus musculus; Myosp. aspalax; Och. dauurica; Ph. campbelli; R. norvegicus;3ChoibalsanAll. sibirica; Ap. peninsulae; Cr. barabensis; Las. brandtii; M. sibirica; Mer. unguiculatus; Micr. minutus; Microt. fortis; Microt. gregalis; Microt. mongolicus; Mus musculus; Myosp. aspalax; Och. dauurica; Ond. zibethica; Ph. campbelli;4ChuluunxorootAll. sibirica; Ap. peninsulae; Cl. rutilus; Cr. barabensis; Las. brandtii; M. sibirica; Mer. unguiculatus; Micr. minutus; Microt. fortis; Microt. gregalis; Microt. mongolicus; Mus musculus; Myosp. aspalax; Och. dauurica; Ond. zibethica;
...и таких записей сотни. Надо это нормализовать. Как я понимаю, нужно превратить это в 3 таблицы: районы, виды и соединительную. Но вручную мало того что замаешься, так и наверняка кучу ошибок наделаешь. Можно ли как-то автоматизировать процесс через SQL запросы (MySQL)?
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915086
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlvHare,
Китайским, судя по всему, в достаточном объеме владеете только Вы, чтобы увидеть там районы, виды и проч. Но если Вы знаете логику для нормализации, то все вполне можно сделать SQL командами.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915123
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlvHareНадо это нормализовать.
Вы уверены? Чего Вы хотите достигнуть данной нормализацией?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915139
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlvHare...и таких записей сотни. Надо это нормализовать. Как я понимаю, нужно превратить это в 3 таблицы: районы, виды и соединительную. Но вручную мало того что замаешься, так и наверняка кучу ошибок наделаешь. Можно ли как-то автоматизировать процесс через SQL запросы (MySQL)?

Можно, и лучше через хранимые процедуры.

фетчишь старую запись, парсишь строку Fauna, вставляешь все новые записи в цикле.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915145
UlvHare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, если невнятно задал вопрос. "Китайского" (точнее, монгольского) здесь только названия регионов (2-й столбец: Region). Ну вот так монголы называют свои районы :-) Каждая ячейка в столбце "Fauna" в имеющейся таблице - это список видов, найденных в данном регионе. Регионы уже уникальны, так что с 1-й таблицей всё просто:
regions
ID_region Region1Xalx gol
А вот как выцарапать уникальные названия видов из "Fauna" в отдельную таблицу:
species
ID_species name1All. sibirica2Mus musculus3Cl. rufocanus
и тем более, сохранить связи:
reg_spec
ID_regionID_species1113
...я не представляю.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915159
UlvHare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovUlvHareНадо это нормализовать.
Вы уверены? Чего Вы хотите достигнуть данной нормализацией?

Почти уверен. Достичь хочу поиска наличия видов по районам и наоборот. Кроме того, есть ещё данные по районам (растительность, влажность, etc.), и треба выяснять зависимость, скажем, наличия красной полёвки (Cl. rutilus) от влажности в регионе.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915180
UlvHare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivМожно, и лучше через хранимые процедуры.

фетчишь старую запись, парсишь строку Fauna, вставляешь все новые записи в цикле.

А можно поподробнее? В смысле пример.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915207
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlvHareДостичь хочу поиска наличия видов по районам и наоборот.
В таком случае следует пойти в раздел MySQL и спросить как разделить строку на части по
известному разделителю, а потом эти части распихать в таблицы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915208
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlvHareMasterZivМожно, и лучше через хранимые процедуры.

фетчишь старую запись, парсишь строку Fauna, вставляешь все новые записи в цикле.

А можно поподробнее? В смысле пример.

А в смысле пример -- это уже будет взять и за тебя написать.

Я в общем не против, если мне заплатят.

И дёшево я не беру.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915271
UlvHare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovВ таком случае следует пойти в раздел MySQL и спросить как разделить строку на части по
известному разделителю, а потом эти части распихать в таблицы.

Спасибо! Навели на мысль.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915296
UlvHare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivА в смысле пример -- это уже будет взять и за тебя написать.

Я в общем не против, если мне заплатят.

И дёшево я не беру.

Сразу видно профессионала :-) К сожалению, ни я лично, ни весь бюджет нашей лабы на услуги профессионального разработчика не тянем. Так что, учиться, учиться и учиться :-)
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915568
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlvHareMasterZivА в смысле пример -- это уже будет взять и за тебя написать.

Я в общем не против, если мне заплатят.

И дёшево я не беру.

Сразу видно профессионала :-) К сожалению, ни я лично, ни весь бюджет нашей лабы на услуги профессионального разработчика не тянем. Так что, учиться, учиться и учиться :-)

Ну, успехов в учёбе...
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38915824
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlvHare,

1) скопировать содержимое самой длинной строки в пямать
2) выдавить в файд текстовый в Notepad
3) импортировать в Excel c разделителем ;
4) транспонировать в столбик
5) присвоить номера

будет табличка списка особей Id_species|Name

6) импортировать в базу - получится справочник species

дальше продолжать?
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38916202
guest121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander2UlvHare,

1) скопировать содержимое самой длинной строки в пямать
2) выдавить в файд текстовый в Notepad
3) импортировать в Excel c разделителем ;
4) транспонировать в столбик
5) присвоить номера

будет табличка списка особей Id_species|Name

6) импортировать в базу - получится справочник species

дальше продолжать?

Такой номер прокатит только если, самая длинная строка включает в себя весь спектр наименований, что далеко не обязательно.
Я так понял что разделитель мы имеем..точка с запятой, а значит..сохранить все данные в массив, удалить дубликаты, после этого создать справочник. Я бы использовал что то типа perl, python.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38916346
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest121Я бы использовал что то типа perl, python.
там это нинах не нужно, достаточно SQL команд, если с умом подходить к вопросу.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38916347
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander2UlvHare,

1) скопировать содержимое самой длинной строки в пямать
2) выдавить в файд текстовый в Notepad
3) импортировать в Excel c разделителем ;
4) транспонировать в столбик
5) присвоить номера

будет табличка списка особей Id_species|Name

6) импортировать в базу - получится справочник species

дальше продолжать?
Это изврат, а если там справочник в тысячи наименований?
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38916450
guest121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Axeleronguest121Я бы использовал что то типа perl, python.
там это нинах не нужно, достаточно SQL команд, если с умом подходить к вопросу.
Конечно достаточно, может дело в привычке.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38916451
Фотография Wilhelm Holtoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlvHareМожно ли как-то автоматизировать процесс через SQL запросы (MySQL)?
Сама постановка вопроса - неправильная.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38916809
UlvHare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wilhelm HoltoffUlvHareМожно ли как-то автоматизировать процесс через SQL запросы (MySQL)?
Сама постановка вопроса - неправильная.
Вот именно на эту мысль и навёл меня уважаемый Dimitry Sibiryakov . Подумав-полазив по Инету, нашёл несколько решений:
1а) На SQL свет клином не сошёлся. Тупо перегоняя таблицу туда-сюда в/из CSV с разными разделителями, получаю колонки по всем видам, SQL-ом получаю список уникальных.
1б) На MySQL тоже свет клином не сошёлся. В Postgresql есть милая функция regexp_split_to_table() , чуть более по-иному позволяющая опять-таки получить список уникальных видов.
1в) Здесь же на форуме есть описание конкретно на MySQL через хранимые процедуры и десяток аналогичных в Инете. Но геморройно, актуально только если жёстко привязан к MySQL.
2) Как SELECT-ами из итогов пункта 1 получить связи уже сам допетрил.
Всем большое спасибо!
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38917006
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlvHareWilhelm Holtoffпропущено...

Сама постановка вопроса - неправильная.
Вот именно на эту мысль и навёл меня уважаемый Dimitry Sibiryakov . Подумав-полазив по Инету, нашёл несколько решений:
1а) На SQL свет клином не сошёлся. Тупо перегоняя таблицу туда-сюда в/из CSV с разными разделителями, получаю колонки по всем видам, SQL-ом получаю список уникальных.
1б) На MySQL тоже свет клином не сошёлся. В Postgresql есть милая функция regexp_split_to_table() , чуть более по-иному позволяющая опять-таки получить список уникальных видов.
1в) Здесь же на форуме есть описание конкретно на MySQL через хранимые процедуры и десяток аналогичных в Инете. Но геморройно, актуально только если жёстко привязан к MySQL.
2) Как SELECT-ами из итогов пункта 1 получить связи уже сам допетрил.
Всем большое спасибо!


Но на SQL это тоже решается довольно легко. Я только не нашёл сходу функцию аналогичную regexp_split_to_table.
Там конечно было бы не _to_table, но в цикле можно было бы брать первое подвыражение, второе и так далее.
...
Рейтинг: 0 / 0
Преобразование таблицы в 1нф (вопрос новичка)
    #38917298
Фотография Wilhelm Holtoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UlvHareВот именно на эту мысль и навёл меня уважаемый Dimitry Sibiryakov . Подумав-полазив по Инету, нашёл несколько решенийНу и замечательно. А я уж было начал думать, что вам процесс важнее результата.
Поэтому, когда задаёте вопрос - всегда излагайте то, что вы в итоге хотите получить ( а вовсе не ваше видение процесса получения ...).
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Преобразование таблицы в 1нф (вопрос новичка)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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