Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Удобный готовый интерфейс для наполнения таблиц-связок / 12 сообщений из 12, страница 1 из 1
10.06.2015, 18:46:46
    #38981530
vitkorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
Здравствуйте! Нужна помощь опытных людей.

Есть в БД таблицы (движок InnoDB). В каждой из таблиц есть поля manufacturer и part_number , они одновременно уникальны (образуют естественный ключ) и человекопонятны. Есть также в каждой таблице суррогатный ключ id . Между элементами этих таблиц существуют связи "многие ко многим". Для хранения этих связей используется соответствующая промежуточная таблица-связка (см. рисунок). Таблица-связка хранит пары соответствующих id . Всё связи, с моей точки зрения, грамотно оформлены через FORING KEY (ссылаются на суррогатный ключ id исходных таблиц), что удобно позволяет отслеживать целостность данных.

Задача состоит в том, что нужно удобным способом заполнить таблицу-связку. Человеку легко понятны соответствия пары полей manufacturer и part_number из одной таблицы паре полей manufacturer и part_number второй таблицы, но записывать то получается только "непонятные" id . Есть ли удобный интерфейс записи в такие таблицы?

Я пробовал phpMyAdmin , но он при записи в таблицу-связку предлагает варианты суррогатных ключей и никак не подсказывает manufacturer и part_number им соответсвующие. Настроить такие подсказки в phpMyAdmin у меня не получилось. Возможно ли это там вообще? Т.е. хочеться выбирать пары manufacturer и part_number , а по факту будет формироваться запрос на запись пары id .

Есть ли другие админки БД, которые смогут позволить это сделать?

Альтернатива использованию интерфейсов админок - это написание собственного интерфейса наполнения, но этот вариант пока откладывается как слишком времязатратный.
...
Рейтинг: 0 / 0
10.06.2015, 18:47:20
    #38981532
vitkorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
...
Рейтинг: 0 / 0
10.06.2015, 19:02:48
    #38981547
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
vitkorobАльтернатива использованию интерфейсов админок - это написание собственного интерфейса наполнения, но этот вариант пока откладывается как слишком времязатратный.Некоторые на Access-е лепят такое вполне шустро. На Delphi/C++ Builder тоже, вроде бы, не долго.
vitkorobВ каждой из таблиц есть поля manufacturer и part_number , они одновременно уникальны (образуют естественный ключ)Если задача учебная и если я правильно понял, что это автозапчасти, то сойдет. Если задача реальная и это автозапчасти, то не сойдет, ибо у многих запчастей более одного номера производителя. А иногда и ни одного.
vitkorobВ каждой из таблиц есть поля manufacturer и part_number , они одновременно уникальны (образуют естественный ключ) и человекопонятны. Есть также в каждой таблице суррогатный ключ id . Между элементами этих таблиц существуют связи "многие ко многим". Для хранения этих связей используется соответствующая промежуточная таблица-связка (см. рисунок). Таблица-связка хранит пары соответствующих id . Всё связи, с моей точки зрения, грамотно оформлены через FORING KEY (ссылаются на суррогатный ключ id исходных таблиц), что удобно позволяет отслеживать целостность данных.Как manufacturer+part_number в одной таблице соответствуют этим же полям в другой таблице? Тоже образуют связь?
Какова вообще задача продемонстрированного фрагмента БД ?
...
Рейтинг: 0 / 0
10.06.2015, 19:20:13
    #38981564
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
vitkorobВ каждой из таблиц есть поля manufacturer и part_number , они одновременно уникальны (образуют естественный ключ) и человекопонятны.
Почему тогда они не лежат в отдельной таблице?

vitkorobЕсть ли удобный интерфейс записи в такие таблицы?
На Аксе делается форма с двумя листбоксами за пару минут. Дольше будешь соединение с таблицами настраивать...

Вот только я не понимаю, что мешает заполнить всю эту фигню одним тривиальным запросом?

Код: sql
1.
2.
3.
4.
5.
insert ignore into link_table(id1, id2)
select t1.id, t2.id 
  from table1 t1, table2 t2 
  where t1.manufacturer = t2.manufacturer
    and t1.part_number = t2.part_number
...
Рейтинг: 0 / 0
10.06.2015, 19:22:06
    #38981568
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
Akina
Код: sql
1.
2.
 where t1.manufacturer = t2.manufacturer
    and t1.part_number = t2.part_number

Что-то я в это не верю.
...
Рейтинг: 0 / 0
10.06.2015, 19:24:55
    #38981572
vitkorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
miksoftКак manufacturer+part_number в одной таблице соответствуют этим же полям в другой таблице? Тоже образуют связь?

Говоря более человеческим языком, есть таблица с моторами (motors), есть таблица с редукторами (gears). Конструктивно некоторые моторы совместимы с некоторыми типами редукторов. Это надо показать в БД. Для этого и используется таблица-связка. С точки зрения организации БД manufacturer+part_number редуктора никак не соответствует manufacturer+part_number мотора. Таких связок (CONSTRAINT) нет . Они чисто человечески соответствуют, имея ввиду конструктивную совместимость. Связки (CONSTRAINT) только по id .

miksoftКакова вообще задача продемонстрированного фрагмента БД ?

Этот кусок показывает таблицу-связку, которую нужно заполнить. Таблица-связка показывает конструктивную совместимость деталей.

Прошу обратить большее внимание на обсуждение интерфейсов ввода (админок БД), т.к. задача:

vitkorobЗадача состоит в том, что нужно удобным способом заполнить таблицу-связку.

Критерий удобства я попытался сформулировать в первом посте. Это наличие подсказок в виде других полей текущей записи, а не только id .
...
Рейтинг: 0 / 0
10.06.2015, 19:33:26
    #38981579
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
Ааа... ну тогда берите Аксесс, стопудово. На форме два комбо/листбокса и кнопка, плюс 4 подчинённых формы. Выбираем что-то в одном боксе - в одной субформе отображается соотв. запись таблицы, в другой - имеющиеся пары к этой записи из таблицы соответствий. То же для другого бокса и пары форм. Подобрали пару - по кнопке данные бросаются в таблицу, форма чистится. Работы минут на 15, все формы построит мастер, только чутка подрихтовать.
...
Рейтинг: 0 / 0
10.06.2015, 19:37:34
    #38981583
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
vitkorob,

Если вариант с Access-ом устраивает, то могу перенести топик в соответствующий подфорум.
...
Рейтинг: 0 / 0
10.06.2015, 20:03:14
    #38981598
vitkorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
miksoftvitkorob,

Если вариант с Access-ом устраивает, то могу перенести топик в соответствующий подфорум.

Спасибо, я рассмотрю Access, но я всё-таки хочу ещё послушать мнения опытных людей. Может есть другие админки для MySQL, и кто-то порекомендует ещё один хороший вариант. Поэтому прошу пока не переносить.

phpMyAdmin никто не использовал для работы (наполнения базы со связями FOREIGN KEY) так как я хочу это попробовать? Он совсем в этом плох?
...
Рейтинг: 0 / 0
10.06.2015, 20:18:54
    #38981605
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
vitkorobМожет есть другие админки для MySQLКаких-то MySQL-специфичных, насколько я в курсе, нет.
Есть немного общего применения. Например, тот же MS Access и LibreOffice Base.
vitkorobphpMyAdmin никто не использовал для работы (наполнения базы со связями FOREIGN KEY) так как я хочу это попробовать? Он совсем в этом плох?Он просто не для этого. Он для админов и разработчиков, а не для пользователей.
...
Рейтинг: 0 / 0
15.06.2015, 13:40:25
    #38983945
vitkorob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
Всем спасибо! C помощью LibreOffice Base и видоса с YouTube удалось решить поставленную задачу. Правда рабочего времени ушло всё равно относительно много

YouTube Video
...
Рейтинг: 0 / 0
17.06.2015, 09:01:17
    #38985390
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удобный готовый интерфейс для наполнения таблиц-связок
vitkorobВсем спасибо! C помощью LibreOffice Base и видоса с YouTube удалось решить поставленную задачу. Правда рабочего времени ушло всё равно относительно много



это даже лучше. через офис сделать. зачем тебе ещё с чем-то мучатся. Вполне нормальное решение.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Удобный готовый интерфейс для наполнения таблиц-связок / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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