Перейти к содержимому


Соотношение mysql-ных и осмысленных названий полей таблиц


В теме одно сообщение

#1 vitaliy

    Участник

  • Пользователи
  • PipPip
  • 10 сообщений

Отправлено 19 Сентябрь 2013 - 13:35

Добрый день.

Хочу сделать для себя таблицу соответствия названий полей, т. е. чтобы понять, что поле f862 в таблице f_data80 - это поле "Счет-факура" в таблице "Позиции Счет-фактуры".

Начал делать через таблицы f_tables, f_fields и INFORMATION_SCHEMA.COLUMNS

SELECT t.id, t.name_table, f.field_num, f.name_field, c.column_name
FROM f_tables t, f_fields f, INFORMATION_SCHEMA.COLUMNS c
where t.id = f.table_id
and concat('f_data', t.id) = c.table_name
and c.ordinal_position = f.field_num
order by t.id, f.field_num

...и все вроде хорошо на первый взгляд получилось, но я заметил, что порядковый номер поля f_fields.field_num не везде идет по-порядку, а точнее много, где после 4-го обязательного поля идет сразу 6. Соответственно этот номер не соответствует порядковому номерому в таблице COLUMNS.
Как это можно обойти средствами MySql или может есть другие способы получить соответствия?

#2 vitaliy

    Участник

  • Пользователи
  • PipPip
  • 10 сообщений

Отправлено 19 Сентябрь 2013 - 15:45

Вот я гоню, зачем INFORMATION_SCHEMA.COLUMNS? f_fields.id - дает как раз название поля. Щас сделаем...
вот что получилось:

SELECT t.id, t.name_table, f.field_num, f.name_field, concat('f', f.id)
FROM f_tables t, f_fields f
where t.id = f.table_id
and f.field_num > 4
order by t.id, f.field_num

Сообщение отредактировал vitaliy: 19 Сентябрь 2013 - 15:49






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных