Question

I am architecting a software project and I want to create a SAAS (Software As a service) one. I want to model my application along the lines of Salesforce. I really like there customization features but I am not sure how they really go about it. I read that they create an ID for every field that is required and then store the corresponding data too. Can anyone guide me as to how this is possible. For example, if I want to store an employee record. 2 fields (firstname, lastname) are already given and the user adds a third field(say DOB), how is data going to be stored?

I would also appreciate if someone could give me some resources to practical examples of implementing a SAAS architecture.

Thanks

Was it helpful?

Solution

SaaS really has nothing to do with customization features like in SalesForce. You probably need to refine your question to get better answers.

SaaS simply means you design your software to be usable to multiple people at the same time over the web.

Customization features apply equally to web based applications, thick client applications, etc.

One common way to store user-specific extensions to basic entities is by using name value pairs. There are other ways as well. With name value pairs you might have a structure like this (rough outline to convey concept):

Employee

  • EmployeeID
  • FirstName
  • LastName

EmployeeUserFieldDefinitions

  • FieldName
  • FieldType
  • InputRestrictions (e.g. length)

EmployeeUserData

  • EmployeeID
  • FieldName
  • FieldValue

OTHER TIPS

I also agree with Eric. High customizability may be a plus for an SaaS architecture but it is not a must. I think that a must for an SaaS is multi-tenant architecture.

So, you should check out the Multi-Tenant Data Architecture article which was published by Microsoft. The article includes some patterns (Extensibility Patterns) about customizability too.

BTW, As dChengYou stated, you may not have to build it from scratch. i suggest you to review the Viravis as an alternative solution.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top