Как представлять сложные и гибридные данные - PullRequest
3 голосов
/ 12 августа 2011

У меня довольно сложный вопрос.

Я ищу сценарий JavaScript или PHP, который может принимать любые данные (массивы, запросы mysql ...) и создавать из них таблицу / сводную таблицу / диаграмму.

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

Например, взять контент, оцененный пользователем.

Я хочу иметь возможность составить график числа людей, которые оценили 1,2,3,4 или 5. Я хочу составить таблицу с количеством пользователей, которые получили оценку в июле и августе. Я хочу получить содержание, которое было наиболее оценено. Я хочу получить пользователей, которые проголосовали больше всего.

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

Есть ли что-то подобное там?

Если не в php / javascript, может быть, на другом языке на другой платформе?

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 12 августа 2011

Я не думаю, что можно автоматически интерпретировать любой формат данных без явного определения того, как этот формат следует интерпретировать. Что делать, если вы передаете в формате CSV? как ваше приложение узнает значение данных CSV? как он мог знать, что столбцы разделены запятыми? Как он мог знать, что означает колонка? Что если вы перейдете в JSON? Как он будет знать, как интерпретировать эти данные? Как он узнает, что к нему относятся иначе, чем к данным CSV? Вам нужно будет явно определить способы интерпретации интересующих вас форматов. Для этого вы можете использовать существующие парсеры.

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

Table
-----
id (PK)
name


Column
-------
id (PK)
table (FK to Table's id)
title


Row
---
id (PK)
table (FK to Table's id)


DataPoint
---------
id (PK)
row (FK to Row's id)
column (FK to Column’s id)
value

С помощью этой структуры вы можете представить любую таблицу данных. Это, возможно, довольно ужасный дизайн, хотя. Но для ваших целей он может соответствовать вашим требованиям. Вот статья о возможных возражениях против такого дизайна. Если вы можете реализовать что-то в этом духе в 6NF, это может быть здорово.

Вы можете расширить это, чтобы справиться с сводными таблицами и диаграммами.

Я не знаю ничего из того, что существует для вас.

0 голосов
/ 17 августа 2011

Вы можете использовать ExtJS в сочетании с их инструментом проектирования .Если вы можете предоставить свои данные в виде объекта JSON, вы сможете довольно легко создать приложение, которое позволит пользователю манипулировать данными так, как он или она считает нужным.

См. Диаграмму ExtJS.демос .

0 голосов
/ 12 августа 2011

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

Например, вы можете создать простую функцию PHP, которая будет выводить данные в виде таблицы HTML. Затем с этой таблицей HTML разверните несколько плагинов jQuery для сортировки таблицы ( DataTables ) и для создания графиков из табличных данных ( graphTable ).

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

...