Estoy en un proceso de diseño de una aplicación personalizada de SharePoint. En un proyecto anterior, todos los datos se mantuvieron en las listas de SharePoint y esa es la forma en que lo he estado intentando ahora. Pero, estoy llegando al punto donde el modelo de datos crece y siento la necesidad de normalizarlo y dividir una entidad lógica en varias listas físicas. Me pregunto si debería pasar de las listas SP a una base de datos clásica. Por un lado, estoy contento con los formularios listos para usar nuevos elementos de SharePoint, edición de artículos, todos los artículos; por otro lado, me preocupa que el rendimiento se vea afectado una vez que tenga que consultar datos unidos (si permanece en SPList
s).
Si tiene alguna idea o experiencia con este problema, por favor, comparta. Gracias.SharePoint: ¿debería usar listas o una base de datos?
Respuesta
Depende de sus requisitos, pero desde mi experiencia aquí son los casos en los que debe utilizar la base de datos en lugar de las listas:
1) Cuando se tiene una relación de muchos a muchos en su modelo de base de datos
2) Cuando tiene dos o más entidades vinculadas entre sí (por ejemplo, Cliente> Factura> Producto de factura).
SharePoint es excelente, pero en los escenarios anteriores tendrá problemas con las limitaciones de la interfaz de usuario de SharePoint.
3) Si va a tener informes o gráficos personalizados, debe pegarse a su propia base de datos.
Cuando se utilizan entidades de bases de datos, la mejor opción es desarrollar sus propios elementos web, ya que BDC es caro y muy limitado en la mayoría de los casos. También puede consultar elementos web de terceros (p.Elementos web de bambú)
Estas son las razones para utilizar las listas de SharePoint a través de la base de datos:
- Permisos
- Facilidad de uso para el usuario final
- Editar en hoja de datos/Excel/Acceso
- Flujos de trabajo
- Buscar
Si tiene consultas complejas, le sugiero que las ponga en una base de datos separada. Las listas son buenas cuando el modelo de datos no crece con tanta frecuencia.
Extender la cantidad de campos dentro de las columnas de una lista incluye la actualización de ContentTypes directamente con un STSADM que deberá codificar. Sin embargo, consultar los datos directamente desde la base de datos (con algo de caché, por supuesto) dará lugar a un desarrollo más rápido sin tener que actualizar todos los ContentTypes vinculados a todas las listas asociadas a él.
Por supuesto, si activa el almacenamiento en caché, los datos solicitados desde la base de datos se almacenarán en caché en el nivel de salida de la página.
Me gustaría agregar como nota al margen que la búsqueda no será un problema ya que el rastreador rastrea el sitio y no la base de datos. También puedo decirte que puedes vincular el código a eventos de la lista (agregar, editar, eliminar) y hacer que ejecuten código en esos eventos. Realmente genial para sincronizar todo. –
Además de la respuesta de Maxim, también le aconsejo que tenga en cuenta la búsqueda. La búsqueda de OTB es realmente agradable si estos datos van a ser algo en lo que tendrás que profundizar.
No estaría demasiado preocupado por ir a una base de datos personalizada para los datos.
Significa que hay trabajo adicional para protegerlo con controles personalizados e introducir esos controles en una página de diseño y/o partes web personalizadas que las listas hacen por usted.
Si tiene el BDC disponible, ese sería el camino a seguir, de lo contrario personalizado.
Por lo tanto, al final es una compensación entre la facilidad de integración con sharepoint y tener los formularios de entrada de datos disponibles frente a la codificación de todos esos elementos, pero con un control total de la integridad de los datos.
- 1. ¿Cuándo debería usar una base de datos de objetos?
- 2. ¿Debo usar tablas planas o una base de datos normalizada?
- 3. ¿Qué interfaz de la base de datos Perl debería usar?
- 4. ¿Es mejor usar una lista de pares o dos listas?
- 5. una base de datos por cliente o todos los clientes en una base de datos. ¿Cuál debería usar para una aplicación en línea?
- 6. ¿Debería una tabla de base de datos tener valores predeterminados?
- 7. en_US o en-US, ¿cuál debería usar?
- 8. Debería usar document.createDocumentFragment o document.createElement
- 9. ¿Cuándo/por qué debería comenzar a usar una base de datos?
- 10. Representación de relaciones padre-hijo en listas de SharePoint
- 11. Para SharePoint O no (como una base para el desarrollo de aplicaciones) (vs ASP.NET)
- 12. ¿Debo usar una configuración de base de datos única o múltiple para una aplicación multicliente?
- 13. ¿Qué base de datos liviana debería usar en una extensión de Firefox?
- 14. ¿Cuándo debería usar una base de datos NoSQL en lugar de una base de datos relacional? ¿Está bien usar ambos en el mismo sitio?
- 15. Alternativa de código abierto para listas de Sharepoint
- 16. ¿Es una buena idea usar la biblioteca CodeIgniters Active Record para manipular bases de datos MySQL o debería usar SQL?
- 17. Fusionando 8 listas ordenadas en C++, que algoritmo debería usar
- 18. Cómo crear sub-listas en sharepoint
- 19. ¿Cómo se leen las listas de SharePoint de forma programática?
- 20. Composición vs Herencia. ¿Qué debería usar para mi biblioteca de interacción de base de datos?
- 21. ¿Dónde están las diferencias usando la base de datos XML y MySQL? ¿Qué debería usar?
- 22. ¿Cuándo debería crear índices de base de datos?
- 23. Delphi XE - ¿Debería usar String o AnsiString?
- 24. Columnas de archivos adjuntos múltiples en listas de SharePoint
- 25. django: ¿cuándo debería usar media_root o static_root?
- 26. Tabla de base de datos o XML
- 27. ¿Cómo crear una vista de datos en Sharepoint con datos de una consulta de combinación?
- 28. ¿Cuándo debería usar std_logic_vector y cuándo debería usar otros tipos de datos?
- 29. ¿Puedo usar mysqlslap en una base de datos existente?
- 30. ¿Dónde debería guardar fotos? Sistema de archivos o la base de datos?
Estoy de acuerdo con las razones para usar una base de datos, pero no necesariamente las razones para usar listas de SharePoint. Usando BDC (si tiene MOSS) se pueden lograr muchos de estos si sus datos se almacenan en una base de datos externa y se accede solo en SharePoint o junto con una lista. – elorg
Unfortunatley BDC solo está disponible para MOSS Enteprise, y la mayoría de las personas solo usa WSS. –