Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 24.03.2016
Сообщений: 5

Разделить таблицу по столбцам, сохраняя связи

31.03.2016, 08:57. Показов 2180. Ответов 9

Студворк — интернет-сервис помощи студентам
Добрый день. Есть таблица (содержит 25 колонок, для примера привожу 4) примерного вида:
nomer name color param
3228 предмет1 синий параметр1
3228 предмет1 красный параметр2
3229 предмет2 зеленый параметр3
3229 предмет2 синий параметр2
т.е. много дублирующих значений по столбцу, но одинаковых строк нет (параметры дублируются для разных предметов)
Вопрос: можно как-то разделить эту таблицу на множество таблиц в автоматическом режиме (каждый столбец в отдельную таблицу), сохраняя связи и не плодя дубликатов в рамках одной таблицы?
Используется SQLite либо MySQL.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2016, 08:57
Ответы с готовыми решениями:

Как уйти от связи многие ко многим? Разделить таблицу БД на 2
Есть таблицы: ---Экзамены -(PK)№ Экзамена -Дата -Студент -Оценка -Дисциплина (SK к Дисциплины.Название) ---Дисциплины ...

Перенести данные из одной БД в другую сохраняя связи
Всем доброго времени суток. В общем, вот какая задачка у меня стоит. Есть БД, с некоторыми таблицами, между ними связи и т.д., она...

Текстовые файлы. Разделить массив на две части, сохраняя последовательность их вывода
помогите написать программу!! очень надо В текстовом файле записано одномерный массив целых чисел. Разделить массив на две части (сначала...

9
Zero day
 Аватар для Meridian21
267 / 231 / 78
Регистрация: 16.12.2015
Сообщений: 943
Записей в блоге: 4
31.03.2016, 09:19
Tenkof, все зависит от того, что хранит твоя таблица? В плане данные о каких объектах. Если объектов (сущностей) несколько, то их можно разнести по разным таблицам, если сущность одна, то возможно, можно вынести некоторые атрибуты в отдельные таблицы-справочники. Вот у тебя "разные предметы", может эти самые предметы (атрибуты их) хранить в разных таблицах?
0
0 / 0 / 0
Регистрация: 24.03.2016
Сообщений: 5
31.03.2016, 10:23  [ТС]
Именно это мне и нужно - каждый столбец представляет собой сущность. Поэтому и требуется выделить столбцы в отдельные таблицы (сущности). Возможно я не совсем правильно выразился.
Вручную 41 тысячу строк тяжеловато разносить. (уникальных значений на столбец-сущность около 1,5 тыс).
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,934
Записей в блоге: 4
31.03.2016, 11:01
nomer name color param
3228 предмет1 синий параметр1
3228 предмет1 красный параметр2
3229 предмет2 зеленый параметр3
3229 предмет2 синий параметр2
цвет конечно можно сделать отдельной таблицей, но параметров видимо много похожих или по разному набитых -- мастером утомительно

надо более реальный пример
0
Zero day
 Аватар для Meridian21
267 / 231 / 78
Регистрация: 16.12.2015
Сообщений: 943
Записей в блоге: 4
31.03.2016, 11:10
Tenkof, так, сущность - это описываемый объект, а в столбце хранится атрибут (характеристика объекта).
Судя по таблице в примере, есть таблица, что-то вроде "Товары" и имеются данные. Получается что-то вроде этого:
Номер| Имя | Цвет | Параметр
3228 | Принтер | Синий | ...
3228 | Принтер | Красный |...
3229 | Сканер | Зеленый |...
Верно? Т.е. каждый "новый" товар (товар, у которого отличается одно значение поля) заносится новой строкой?
---
Можно попробовать вынести отдельные предметы по отдельным таблицам, предварительно продумав связи с другими таблицами. Т.е. если получается, что строка - это одно из возможных состояний объекта, сделать несколько таблиц с разными предметами (объектами) и перенести туда записи из этой таблицы.
Ну а связи со всем остальным настроить по ключам. У каждой новой таблицы будет суррогатный ключ, по которому можно будет настроить связь.
Также можно попробовать вынести некоторые атрибуты в справочники, но это не сильно поможет.
0
0 / 0 / 0
Регистрация: 24.03.2016
Сообщений: 5
31.03.2016, 11:52  [ТС]
Meridian21, shanemac51,
пример.xlsx

Пытаюсь сделать такую базу. (Ошибок многовато, но лучше пока не придумал).
0
Zero day
 Аватар для Meridian21
267 / 231 / 78
Регистрация: 16.12.2015
Сообщений: 943
Записей в блоге: 4
31.03.2016, 12:46
Tenkof,
Составное поле "способ и время обработки" - разбивай на 2 поля. "Способ", "Время обработки". Способы можно вынести в отдельный справочник, время можно оставить в таблице и заполнять значение для каждой записи. Если это какие-то фиксированные связки, типа "обработка_1 - 35 минут", "обработка_2 - 24 минуты", то тогда просто поменяй название поля, т.к. не должно быть никаких "и" в названии.
Если можно разнести препараты по какому-то типу по разным таблицам - можно это сделать.
А это вообще что за препараты? Медицина?
0
0 / 0 / 0
Регистрация: 24.03.2016
Сообщений: 5
31.03.2016, 18:52  [ТС]
Meridian21, Это пестициды и некоторые другие связанные препараты. Можно конечно выделить где-то 4 больших, и 5 малых групп, но пока что это не так важно.
Есть возможность заполнить мою базу из структурированного XLS файла? Пока, все что нашел по этому поводу, требует продвинутых навыков программирования и знание специфичных библиотек, чем я не обладаю.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,934
Записей в блоге: 4
31.03.2016, 19:35
Цитата Сообщение от Tenkof Посмотреть сообщение
заполнить мою базу из структурированного XLS файла?
может понятнее будет, если посмотреть ексельку
0
0 / 0 / 0
Регистрация: 24.03.2016
Сообщений: 5
31.03.2016, 20:00  [ТС]
shanemac51,http://service.mcx.ru/opendata... 150519.xml - полная версия.
Во вложении небольшой кусочек + .xsd схема (чтобы не тратить ваш трафик).
Вложения
Тип файла: zip structure-20150519.zip (923 байт, 6 просмотров)
Тип файла: 7z new.7z (1.8 Кб, 5 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2016, 20:00
Помогаю со студенческими работами здесь

Разделить содержимое файла по столбцам
подскажите как прописать в программе у меня есть часть файла нужно его в программе разделить по столбцам, те каждый столбец это разная...

Разделить текст по столбцам в Excel
Доброго времени суток. вылезла невзначай странная проблемка: Текст по столбцам не делится! Как это делать смотрю по макросам в...

Добавление записей в таблицу и связанную с ней таблицу, с учётом связи
Имеются 3 таблицы: кабинет id_cab n_cab устройства ...

Расчёт по двум столбцам и запись в другую таблицу
Доброго времени суток. Есть две таблицы: Первая содержит столбцы (Товар, Цена_за_штуку, Количество) Вторая содержит столбцы (Товар,...

Добавление записей в таблицу из другой таблицы по совпадающим столбцам
Доброго времени суток. Подскажите, пожалуйста, решение данной задачи: Имеется две таблицы. Таблицы имеют более 150 колонок,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru