Estoy a punto de iniciar un Database Design que simplemente administrará los usuarios en las empresas.¿Cuál es el mejor diseño de base de datos para miles de filas
- Cada empresa tendrá un área de administración que se pueden administrar a los usuarios
- Cada empresa tendrá alrededor de 25.000 usuarios
- cliente cree que tiene alrededor de 50 empresas para comenzar a
Mi pregunta principal es
¿Debo crear tablas basadas en las empresas? como
users_company_0001
users_company_0002
users_company_0003
...
ya que cada empresa nunca va a usar "otros" usuarios y nada tendrán que resumir/cuenta diferentes mesas en toda user_company (un simple JOIN
hará el truco, aunque es más caro (tiempo) que funcionará como tener la imagen principal, esto nunca va a ser necesario.
o debo crear una mesa users
que tiene (50 x 25000) usuarios (y creciente)
Estoy pensando en la primera opción, sin embargo, no estoy seguro de cómo usaría Entity Framework en dicho diseño ... Probablemente necesitaría volver a los 90 y generar mi Data Logic Layer a mano .
tiene que será una simple llamada a procedimientos memoria que contiene la identificación de la compañía
¿Qué va a sugerir?
La aplicación del sistema será ASP.NET (probablemente MVC, todavía estoy tratando de resolver esto como todos mis conocimientos está en formularios web, aunque vi vídeos de Scott Hanselman MVC - costuras fácil - pero Sé que no será tan fácil ya que los problemas vendrán y tomaré más tiempo para solucionarlos), más Microsoft SQL.
¿Por qué una tercera mesa mientras que la tabla 'Usuario' puede tener' company_id'? ¿Es este un mal procedimiento? ¿Debería crear una tabla para "alojar" todos los "enlaces" entre las tablas? – balexandre
Como dije, describiste una relación 1-many, por lo que agregar una CompanyID a la tabla de Usuario sería una solución válida. Elegí modelar esto como una relación de muchos a muchos para permitir un cambio futuro en los requisitos.No creo que la mesa extra cueste mucho en términos de espacio y rendimiento, y te ofrece cierta flexibilidad adicional. En última instancia, por supuesto, es su decisión. –