Hardevsinh Mori Ответов: 2

Как создать таблицу многомерных данных?


у меня есть одна главная таблица, которая содержит около 100 000 записей.

структура таблицы такова:
------ --------- --------
размер / машина / скорость |
------ --------- --------
1 М1 100
2 м2 50
3 м3 20
4 М4 60
5 М5 40
.... ... .....
1000 М100 50

Сейчас,
Каждый размер на каждой машине имеет разную скорость
Каждая машина проходит на скорости и определенным размером.

Если я продолжу выше подходить, то записи будут 1000*100=100000
который не оплачивается движком базы данных.

как я могу спроектировать эту таблицу?

Что я уже пробовал:

Я делаю что-то вроде этого
Размер M01 M02 M03 - - - - - M100
1 100 50 20 30 // значение скорости

к

1000 100 30 20 ------ 20


но проблема возникает, когда я пытаюсь выполнить запрос, передавая имя столбца по параметру

A_Griffin

Я не на 100% ясен:
У вас есть 100 машин, которые работают с разной скоростью в соответствии с разными размерами (чего – то) - это верно?
Во-первых: вы уверены, что вам вообще нужно хранить их в таблице? Разве нет формулы, которая может дать вам желаемые результаты?
Но, предполагая, что вы это сделаете, я думаю, что у вас мало выбора – хотя я бы подумал, что количество записей должно быть числом машин, умноженным на число размеров, которое = 5000, что не так уж плохо.

2 Ответов

Рейтинг:
18

Wendelius

Если я правильно понял ваш вопрос и предложение (в том, что я пробовал), не ставьте имя машины в качестве столбца. Машины - это значения, поэтому они должны храниться в виде строк.

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

Что касается исходной структуры, то если размер и машина определяют скорость, то ваша текущая структура таблицы кажется допустимой.

Вы написали:

If i continue to above approch then records will be 1000*100=100000
which is not tollerated by database engine.

Таблица 100 ' 000 строк-это не большая таблица. Любой современный движок базы данных должен быть в состоянии обрабатывать такое количество строк без каких-либо проблем.

Поэтому, если у базы данных действительно есть проблемы с таким небольшим количеством строк, я бы подумал о том, чтобы изменить базу данных. В противном случае попробуйте с ним.


[no name]

То, что я пробовал в таблице разделов, работает отлично, но я смотрю на будущую проблему, поэтому я опубликовал этот вопрос.

[no name]

В некоторых случаях эти реокорды могут стать большими.

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

^^^
Для этой цели я отправил вопрос.

Wendelius

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

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

Мне кажется, я видел в каком-то вопросе, что вы используете MySQL. если это правильно, то MySQL должен легко обрабатывать сотни миллионов строк, так что количество строк, которые у вас есть, далеко не соответствует пределам ядра базы данных. Таким образом, наличие ста тысяч строк не оправдывает предложенный вами подход :)

[no name]

Да, я использую MYSQL с движком InnoDB, и я не уверен, что этот движок может справиться или нет, потому что каждая отдельная запись нуждается в значениях этой таблицы. так что я был немного волновался по поводу. Но теперь мне ясно, что я имею в виду.

[no name]

Благодарю Вас, Сэр, За Ваше Достойное Объяснение.

Рейтинг:
1

Patrice T

Цитата:
Если я продолжу выше подходить, то записи будут 1000*100=100000
который не оплачивается движком базы данных.

SQL-сервер не имеет проблем с обработкой таблицы с миллионами записей даже на самом маленьком оборудовании, если дизайн правильный.
Ваш пример показывает уникальное значение, вы не объясняете ни назначение таблицы, ни ее использование.
Цитата:
как я могу спроектировать эту таблицу?

Какого Совета вы ожидаете от этого пустяка ?

Цитата:
но проблема возникает, когда я пытаюсь выполнить запрос, передавая имя столбца по параметру

Вот почему все скажут вам, что это плохая идея, независимо от того, как используется таблица.

Вам нужно уточнить вопрос.


Wendelius

Противопоставить новичку.

Patrice T

спасибо.

[no name]

Какого Совета вы ожидаете от этого пустяка ?
^^
Будьте добры к ученику,не теряйте своих страстей во время ответа