2010-10-01 27 views
15

La persona no técnica que pregunta: "¿Puedes poner la base de datos en una hoja de cálculo de Excel para mí?" es tan común que es casi un tropo. (Podría haber jurado que hubo un xkcd acerca de esto, pero no puedo encontrarlo). Obtenemos clientes que piden regularmente todos sus datos en un archivo CSV.¿Cómo ayudo a una persona que quiere datos de bases de datos relacionales en formato CSV?

Decir que esta persona no es técnica es redundante, por lo que necesito explicarles de una manera no técnica, amistosa y no condescendiente que Excel no está diseñado para representar relaciones uno a muchos (sin hacer ellos asimilan la idea de uno-a-muchos).

Si ha tenido experiencia personal con una estrategia particular que ha funcionado para usted con personas no técnicas, definitivamente me gustaría escucharla.

EDITAR: Parece que la mayoría de las respuestas se están inclinando a cuestionar la intención del solicitante. Eso, en sí mismo, es algo difícil de hacer bien. Algunas de las respuestas se basan en arrojar datos a una persona y decirles que se vayan. Eso no es lo que estoy buscando aquí. Estoy buscando ayudar a esta persona, no hacer que se vaya. A eso es a lo que trato de llegar aquí.

Por lo tanto, pregunta de dos partes: ¿Qué le digo a un cliente (es decir, alguien cuyas necesidades quiero satisfacer) que solicita un CSV de sus datos para un.) Copia de seguridad, ob) obtener información del sistema.

Como no hay una respuesta correcta aquí, las respuestas justificadas son bienvenidas.

+9

Bueno, ¿para qué lo quieren? Si quieren un vertedero completo, entonces sí, un CSV es tonto. Si, como es habitual, quieren un informe aplanado, entonces un Excel o CSV tiene mucho sentido. –

+7

¿Por qué no solo hacerlo? Probablemente no les importe si obtienen datos repetidos para algunas de las columnas. –

+0

Entrégueles un volcado bzip de comandos de inserción de SQL; les avergonzará admitir que no tienen ni idea de qué hacer con él. :) –

Respuesta

28

Pídales que le envíe una hoja de cálculo en blanco con los títulos de las columnas para lo que quieren, y dígales que usted lo llene en

Cuando la hoja de cálculo en blanco viene una de dos cosas va a ser verdad:.

  1. Usted será capaz de cumplir con los requisitos del proyecto (por ejemplo, sin desconcertar cómo saber cuál de los 5 números de teléfono es Phone1 y Phone2).

  2. Tendrá algunas preguntas (como "Tengo entre 0 y 25 números de teléfono por persona. ¿Cómo quiere que elija cuál es Phone1 y cuál Phone2? ¿Y qué quiere que haga con cualquier extras?).

Si el segundo es cierto, el cliente sea capaz de proporcionar respuestas o se darán cuenta de que hay un problema real que representan los datos que desean en forma de hoja de cálculo y, con suerte, solicite su ayuda para planear el próximo paso adelante.

+4

Esta es una gran idea. Ellos descubrirán el problema por sí mismos o reformularán la solicitud. – Segfault

+0

Gracias Segfault. No puedo decirte con qué frecuencia tengo que lidiar con esta misma solicitud. Casi la mitad de las veces, por cierto, una vez que el cliente especifica el problema con más precisión (en la hoja de cálculo en blanco), encuentro que la solicitud es bastante fácil de cumplir sin volver a consultarla para obtener más información. –

+0

Simple y brillante. –

12

Los gerentes pueden darse el lujo de ser imprecisos cuando quieren algo, sospecho que en lugar de 'todo el material de Salesforce', solo quiere una vista particular de él. Debe aclarar para qué son los datos y darles lo que necesitan en lugar de lo que pidieron.

9

No hay nada de malo en pedir datos relacionales en formato CSV. Tiene la opción de volcar cada tabla en un archivo de texto separado por comas, o ser un poco más agradable y unir datos uno a uno en un solo archivo CSV. De una a muchas relaciones es obviamente más complicado.

Recomiendo hablar con los chicos y preguntarles qué problema quieren resolver al hacer esto. Obviamente, quieren crear algunas hojas de cálculo, pero no se dan cuenta de que al usar la ruta CSV no podrán manejar los cambios de esquema posteriores, etc. Después de hablar con su "cliente", probablemente puedan ponerse de acuerdo sobre el camino correcto. . Y, eso podría ser la creación de un archivo CSV para una oferta única.

Personalmente he trabajado con algunos chicos no tecnológicos que fueron increíbles con Excel.

+1

Esto. CSV es perfectamente capaz de expresar cada relación. Las hojas de cálculo que admiten varias páginas pueden expresar una base de datos completa con múltiples relaciones. Trabajar con los datos en ese formato es * difícil *, pero las personas inteligentes y no técnicas * pueden * hacer cosas simples con él. – dmckee

+0

No * perfectamente * capaz. ¿Cómo se representa un 'BLOB' en CSV? ¿O distinguir entre 'NULL' y' '' '? – dan04

+0

@ dan04: Esos son problemas para el serializador. Podría, por ejemplo, uuencode blobs. El problema nulo es más difícil, ya que no hay una solución totalmente natural, pero si * debe * hacerse, * se puede * hacer. – dmckee

4

Si tengo tiempo, generalmente les pregunto en detalle qué es lo que quieren. Si no veo ningún gran problema, lo hago. Después de todo, no quiero cuestionarlos. Como se dice en this post

Si nos fijamos en cualquier actividad, proceso, o disciplina desde una distancia que parece simple. Los gerentes sin experiencia de desarrollo piensan que los programadores hacen es simple y programadores sin experiencia en la administración piensan lo mismo de lo que hacen los gerentes .

Así que si no sabes por qué pueden necesitarlo, intenta darles lo que quieran con la mejor de sus explicaciones.

+0

Este es un cliente, no un gerente. Lamento confundir a las personas comenzando por hablar sobre los gerentes, y luego hacer una pregunta sobre la comunicación con los clientes. Dos cosas muy diferentes. –

3

Déles una hoja de trabajo por tabla, todo en el mismo libro de trabajo, exactamente como está almacenado. Se darán cuenta muy rápidamente de por qué tienen que seguir con los informes o cómo solicitar la información que realmente necesitan.

0

es casi seguro que un informe específico o listado que resolverá lo que se está pidiendo.

haga una desde una perspectiva de resumen general y muéstrela, y luego comience la discusión de qué es lo que realmente querían, o simplemente inicie la discusión, que es más difícil ya que la mayoría de las personas no técnicas pueden mostrarle Me gusta algo que existe más fácilmente que describir lo que les gusta en una hoja de papel en blanco.

0

Un simple informe detallado, que es fácil de crear, podría ser bueno. al igual que Ruby on Rails crea una aplicación CRUD simple, debe existir una herramienta similar con unos pocos clics y luego se obtiene un informe de exploración basado en la web.

0

No tiene más remedio que hacerlo. Realicé muchas implementaciones y cada vez que los clientes solicitaban exportar/importar desde Excel. De hecho, no lo tomarán en serio si la aplicación no proporciona este tipo de funcionalidad. Irán a otro lado. Entonces, todo lo que tiene que hacer es aceptar el hecho y resolverlo.

Exportar a Excel es complicado y desafortunadamente las soluciones proporcionadas por Microsoft (SSIS) ofrecen resultados divertidos y carecen de opciones de formato. Sin embargo, es posible (Todas nuestras aplicaciones funcionan correctamente con Excel)

2

Esta es una pregunta relativamente antigua, por lo que considero apropiado agregar una respuesta más que refleje las opciones que no estaban disponibles cuando se formuló la pregunta. Aquí es un enfoque para la exportación a Excel al tiempo que expresa plenamente la naturaleza relacional de los datos que va a exportar:

  • de inicio mediante la exportación de datos relacionales a Excel con cada tabla de la base de datos correspondiente a una hoja de cálculo de su libro, incluyendo los encabezados de columna en la primera fila.
  • Convierta cada una de estas hojas de datos en tablas nombradas en Excel (la manera más fácil es simplemente seleccionar Formatear como tabla).
  • utilizar el Administrador de Nombre para editar los nombres de las tablas a ser lo que quieras llamarlos
  • Para cada llamada "tabla", seleccione Agregar a modelo de datos en la cinta de PowerPivot
  • seleccione Administrar en la cinta de PowerPivot y luego seleccione Vista de diagrama para ver las tablas en el modelo de datos
  • Conecte las tablas para establecer sus relaciones similares a como lo haría en un diagrama de base de datos de SQL Server
  • Si tiene claves compuestas, puede crear columnas calculadas para actuar como sustituto claves, ya que el modelo de datos de PowerPivot no admite claves que usan varias columnas

En este punto, el modelo relacional está completamente representado en Excel y es posible crear tablas dinámicas o incluso informes PowerView de estilo panel que aprovechan tanto los datos como las relaciones. Si bien estoy de acuerdo con la respuesta aceptada en términos de cumplir con las expectativas del cliente, este enfoque es una respuesta posible cuando el cliente realmente necesita los datos exportados con las relaciones mantenidas.

Cuestiones relacionadas