Как хранить табличные данные

Мне нужна ваша помощь для функционального вопроса о хранении данных.

Я нахожусь в проекте, где пользователь может сохранить своего рода таблицу Excel на сервере. Размер таблиц не фиксирован.

Какое лучшее решение для хранения таблиц? Как массив хранится в виде текста в моей базе данных MySql? Используя MongoDB или другое решение NoSQL?

Для информации, функция поиска не будет реализована в таблицах.

Спасибо большое!

Изменить: я добавляю два примера таблицы данных:

Пример 1: продажи за квартал на одного продавца

            Sven    Kenneth
2013.Q1     1200    4500
2013.Q2     1350    900
2013.Q3     2487    784
2013.Q4     4570    4512
2014.Q1     4785    3451

Пример 2: вес пары и их детей по месяцам

       Him    Her    Children
Jan    70.5   52.1   45.1
Feb    71.8   52.7   46.1
Mar    70.8   52.7   46.0
Apr    70.1   51.9   46.1

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

Как хранить эти данные? Обратите внимание, что пользователь никогда не будет искать по этим таблицам.

Я надеюсь, что это понятнее.

2 ответа

Решение

Чтобы решить

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

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

period | salesman | sales
2013.Q1  Sven       1200    
2013.Q2  Sven       1350    
2013.Q3  Sven       2487    
2013.Q4  Sven       4570    
2014.Q1  Sven       4785   
2013.Q1  Kenneth    4500
2013.Q2  Kenneth    900
2013.Q3  Kenneth    784
2013.Q4  Kenneth    4512
2014.Q1  Kenneth    3451

salesman   | id
Sven L       Sven
Kenneth W    Kenneth

это не нормализуется до 5-й нормальной формы, но это будет делать.

вы можете использовать Cassandra или Mongo, Cassandra вы можете использовать семейства суперколонок, которые позволяют создавать столбцы на лету, а MongoDb - это не жесткая структура, вы сохраняете только объекты json, вы можете сохранять только четверти, например:

{
"quarter" : "2013.Q1", 
"salespeople" : [
    {"salesman": "Sven", "sales" : 1200},
    {"salesman": "Kenneth", "sales" : 4500}
 ]
}

и в следующем году

{
"quarter" : "2014.Q1", 
"salespeople" : [
    {"salesman": "Sven", "sales" : 1200},
    {"salesman": "Kenneth", "sales" : 4500},
    {"salesman": "Somebodyelse", "sales" : 100000}
 ]
}

Вы можете сделать оба пути, но реляционный путь намного проще

Я не нашел четкого ответа, но я объясню, что я буду делать.

Я просто сохраню результат в виде двумерного массива.

Другие вопросы по тегам