mysql: использование одного поля для хранения множества «полей» для сохранения на полях - PullRequest
1 голос
/ 03 октября 2010

У меня есть проект, который нуждается в графическом интерфейсе Excel (запрос клиента) с бэкэндом mysql db / table, требующим почти 90 полей.(почти 60 полей являются дубликатами 6 полей.)

Подумав немного, я закончил тем, что создал таблицу из 11 полей: 10 искомых полей и одно большое поле, которое может содержатьдо 60 полей "вместе", разделенных ":"

Таким образом, запись в этом поле big будет выглядеть примерно так:

charge1:100: 200: 200 :: usd : заряд2: 1000: 2000: 2000 :: usd: заряд3: 150: 200: 200: 250: USD и т. Д.

Как вы можете видеть, это блоки из 6 полей и могут содержать до 10 из этих «блоков», но не более 255 символов.

Ни одно из этих «полей» не нужно ни индексировать, ни искать(это делается для остальных 10 полей)

Я делаю запрос SELECT * (с графическим интерфейсом Excel) из 11 полей, а затем (с VBA) я разделяю эти значения на столбцы (для этого требуетсяменее 1 секунды).С помощью VBA я отображаю данные по определенным полям в «форме» Excel.

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

Есть ли "техническая" причина для того, чтобы этого не делать?

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

Я понимаю, что есть много способов справиться с этим, однако это небольшой проект, и я ищу простое, работающее решение, а не сложное (со слишком большим количеством таблиц и / или полей)

ПосколькуGUI - это интерфейс Excel, я не хочу делать его слишком сложным, если в этом нет необходимости.

Заранее спасибо за ваш вклад.

1 Ответ

1 голос
/ 03 октября 2010

Я думаю, что у вас уже есть хорошее представление о проблемах, которые могут возникнуть.

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

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

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

Все это может быть управляемым усилием для вас, но вполне возможно, что разработчик после вас будет ненавидеть вас.: p

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...