Interfaz de usuario para base de datos relacional: característica básica

Esto es un poco vergonzoso, pero ha pasado un tiempo.

Cuando se trabaja con bases de datos relacionales y se vinculan a tablas separadas por claves primarias: externas, en 1-∞, de modo que, en una tabla en particular, la relación externa de la tabla devuelve una identificación de número entero... ¿cómo hace para que esta relación sea inteligible para usuarios?

Por ejemplo:

Tiene compañía mesa

  • CID
  • Nombre de empresa
  • Ubicación de la compañía
  • CompanyBusinessType

etc. (no nombres de columnas reales)

y una empleado mesa

  • EID
  • nombre de pila
  • apellido
  • Fecha de nacimiento
  • email
  • compañía

Nuestros compañía está relacionado con CID. Pero algún usuario que introduzca información sobre un empleado tendría que saber el código de identificación de la empresa en particular debido a la naturaleza de la relación. Puede ejecutar una consulta para devolver 'CompanyName's junto con sus 'CID' asociados que luego se pueden buscar, pero este cifrado no es una solución ideal. Simplemente no puedo recordar la teoría de cómo uno aborda esto, aunque estoy seguro de que lo he hecho antes. Necesito implementarlo tanto en Microsoft Access 2010 como en Microsoft SSMS (bases de datos separadas fwiw); ¡pero la ejecución debería ser relativamente sencilla tan pronto como recuerde cómo se hace!

preguntado el 31 de julio de 12 a las 15:07

¿Está utilizando un formulario de Microsoft Access? -

Por supuesto. Transferiré la base de datos a Sharepoint, pero no creo que deba haber ningún problema al transferir los formularios de Access (a diferencia de una migración similar a SQL Server):

No estoy exactamente seguro, pero creo que Sharepoint es la única excusa para buscar campos en las tablas. En general, los campos de búsqueda en las tablas son venenosos. msdn.microsoft.com/en-us/library/ff402351(office.14).aspx -

2 Respuestas

Cree un cuadro combinado con 2 columnas. Una columna como el nombre de la empresa y la otra como el ID de la empresa. Puede establecer el ancho del ID de la empresa en 0 si no desea que el usuario lo vea.

Esto se puede hacer con la hoja de propiedades en los formularios de MS-Access

Establezca el origen de la fila del cuadro combinado en: SELECT CompanyName, CompanyID FROM Company;

Establezca la fuente de control del cuadro combinado en:Employee.CompanyID

También asegúrese de que el Tipo de fuente de fila esté establecido en Table/Query

Respondido 31 Jul 12, 17:07

OK eso es genial; solo un problema Si la tabla de la que se seleccionan las empresas ya está compitiendo, entonces no hay problema. Pero, con toda probabilidad, el usuario se encontrará con una nueva empresa algún día. Tal como está, es posible sobrescribir una empresa existente en la tabla de empresas, pero ¿cómo diablos puede ser que se agregue otra empresa a la tabla de empresas? ¿El usuario tendría que actualizar específicamente la tabla de la empresa antes de intentar agregar un empleado a la empresa no documentada? - user137263

¿Cuál es la relación entre empresa y empleado? - Talbright

La fuente de control sería técnicamente Employee.CompanyID no Company.CompanyID, por lo que actualizará solo el ID de la empresa en la tabla de empleados. - Talbright

La relación entre la empresa y el empleado sería naturalmente de uno a muchos (una empresa puede tener muchos empleados). Me temo que no sé del todo a qué te refieres con Fuente de control. Si no recuerdo mal, ¿Control Source es para Visual Basic sobre la marcha? Pero probablemente llegue a la conclusión en esta etapa de que, en caso de conocer a alguien de una empresa indocumentada, el empleado podría figurar en una empresa llamada "indefinida", hasta que se agreguen los detalles de la empresa. - user137263

Simplemente coloque un botón al lado del cuadro combinado que abre el formulario "insertar nueva empresa" (que ya tiene, supongo) como un cuadro de diálogo y actualiza el cuadro combinado después de eso. --> Si alguien ingresa un nuevo empleado y la empresa aún no está en el cuadro combinado, puede abrir inmediatamente el formulario "insertar nueva empresa", guardar la empresa allí y luego está en el cuadro combinado y puede seleccionarla. - discurso cristiano

Si necesita una relación de muchos a muchos (muchos empleados pertenecen a muchas empresas), necesitará otra tabla CompanyEmployees, algo como esto: -

Ejemplo de relación de muchos a muchos

Si un empleado solo pertenece a una empresa, esta estructura funcionará bien: -

relación sencilla

En cualquier caso, deberá mostrar el usuario con algún tipo de lista desplegable al agregar/editar un usuario para asociar los usuarios con una o más empresas.

Respondido 31 Jul 12, 15:07

Sí; conoce (y recuerda) la metodología de la tabla intermedia, ¡gracias! La pregunta se relaciona con la asociación de ID con columnas legibles por el usuario. Buen gráfico por cierto! - user137263

Es el "En cualquier caso, deberá mostrar al usuario con algún tipo de lista desplegable al agregar / editar un usuario para asociar los usuarios con una o más empresas". bit con el que estoy teniendo problemas! - user137263

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.