На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
  
> Структура таблицы
    Стала следующая проблема, есть большое кол-во данных их нужно засунуть в БД, но не могу сообразить как коректней организовать структуру, чтобы в последующем возможно было эффективно и быстро обрабатывать запросы.
    Данные представленны так:
    ExpandedWrap disabled
      | 1992|
      |01_01|
      |01_05|
      |01_25|
      |02_13|
      |.....|
      |12_18|

    где a_b = месяц_число (числа разные);
    каждый из блоков a_b содержит от 50-150 строк( неодинаковые в разных блоках ) и столбцов 250-400 (шапка плавающая, но одинаковая в разных блоках, т.е. некоторые столбцы могут отсутствовать)
    Как правильно организовать структуру при создании таблицы?
    Я думал создавать таблицу под каждый блок но количество таблиц будет расти еженедельно. И при таком условии количество таблиц будет на текущий момент составляет 1048 шт.
    И считаю что это мягко говоря не правильно. Прошу Вашего совета в решении данного вопроса.
      Если год и "месяц_число" объединить в поле типа Дата и присовокупить к каждой строке данных - получится вполне нормальная структура. Правда, 400 полей - слегка перебор, но если напрячь извилины и разделить их на несколько групп и в сответствии с таким делением на несколько связанных 1:1 таблиц с суррогатным ключом - то вполне даже ничего структура. При условии, что максимально возможный набор полей не будет в дальнейшем пополняться. Да даже если и будет - ничего страшного... сколько там у тебя сейчас блоков? тыща? по где-то сотне строк? сто тысяч записей... добавить поле в таблицу с 100к записей не самая сложная задача.
        Akina,
        Цитата
        разделить их на несколько групп и в сответствии с таким делением на несколько связанных 1:1 таблиц с суррогатным ключом - то вполне даже ничего структура.
        не совсем понял про группы.
          Цитата Trooper @
          не совсем понял про группы.

          Описывай суть данных и основные формы их использования.
            1989 год
            январь (01)
            за месяц может быть около (1-10 таблиц примерно со след структурой):
            ExpandedWrap disabled
                
              ____________|__параметр1____|___параметр2 ___|
              вычисление_1|     |________________|      
              *при A = 5      |10,225  |______-0,001 ___|
              *при A = 10    | -18     |_______546 _____|  
              вычисление_2|425,25|_______-0,222 __|
              вычисление_3|-3,333|_______-451 ____|
              вычисление_4|0,255|________-45 ____|
              вычисление_5|0,1    |______0,2 ______|
              ----------------|   5,23    |______4,89 _____|
              вычисление_100|4,05|______0,54_____ |


            параметров от 250-400 (по ним будет вестись потом выборка)
            значения в таблице все числовые. кроме первого поля (описание вычислений т.к. вычисление 1 = "при сумарной температуре 80 градусов")
            точность значение = 5-6 знаков
            Сообщение отредактировано: Trooper -
              Цитата Trooper @
              параметров от 250-400 (по ним будет вестись потом выборка)

              Набор параметров, по которым ведётся выборка, может быть любым? или есть какие-то зависимости (скажем, при отборе по параметру25 никогда не используется отбор по параметру 80, или скажем параметр55 и параметр 56 никогда не используются по отдельности, только парой)?
              Есть ли параметры, по которым выборка будет почти всегда, и параметры, по которым выборка будет очень редко?
                Цитата

                Набор параметров, по которым ведётся выборка, может быть любым?

                он (набор параметров) будет указываться пользователем,
                По умолчанию пользователь указывает только что ему надо найти (это будет содержатся в названиях "вычислений") и в следствии чего из базы должны быть показаны записи соответствующие строке поиска по нажатию допустим на которую будет выводится вся таблица (400 параметров) по данному вычислению.
                  Цитата Trooper @
                  он (набор параметров) будет указываться пользователем,

                  Это я как бы догадался.
                  Цитата Trooper @
                  будет выводится вся таблица (400 параметров)

                  Даже если оно поместится в экран - будет совершенно нечитаемо.

                  И хотелось бы получить ответ на вопрос.
                    Цитата
                    Набор параметров, по которым ведётся выборка, может быть любым?
                    Да любым.

                    Цитата
                    Есть ли параметры, по которым выборка будет почти всегда, и параметры, по которым выборка будет очень редко?
                    Есть параметры по которым будет выборка проводится часто - это второй столбец.

                    Цитата
                    Даже если оно поместится в экран - будет совершенно нечитаемо.
                    этого никак не избежать, в любом случае это будет тяжело читаемо.
                      Цитата Trooper @
                      Есть параметры по которым будет выборка проводится часто - это второй столбец.

                      Всё-таки оценить частоту выборки по параметрам. Сгруппировать "частоиспользуемые", "редкоиспользуемые". Разделить по ним на несколько таблиц. То же и касательно наиболее интересующих - ну вряд ли реально нужны все 400.

                      Tab1 (самые частоиспользуемые)
                      ID
                      Name
                      Par 1
                      Par 2
                      ...
                      Par N

                      Tab2
                      ID
                      Par N+1
                      Par N+2
                      ...
                      Par K

                      ...

                      TabX
                      ID
                      Par Z
                      Par Z+1
                      ...
                      Par 400
                        Akina, Хорошо большое спасибо буду пробовать.

                        Добавлено
                        Сообщение отредактировано: Trooper -
                        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0296 ]   [ 14 queries used ]   [ Generated: 21.05.24, 21:03 GMT ]