简体   繁体   中英

Web Application with Sample “guest” data

we are currently working on a new web application using Java and MySql. We would like to implement a "guest" login feature. The idea is simple: anyone can login as a guest user and get access to a small pre-defined dataset which they can then interact with as if they were fully paid up clients.

This feature should have these attributes:

  • Allow multiple concurrent guest logins without cross-talk
  • When the guest session closes any changes will be lost
  • The guest login should not be too slow

Here are a few ideas that we have come up with, although each has it Pros and Cons:

1. Treat them as any other client and store them in the MySql database.

PROS

  • Easier to implement
  • No sublte differences can occur

CONS

  • Polutes the live database with sample data
  • Problem of "initial state" not solved
  • Clean-up is not automatic

2. Use an In-memory temporary database solution

PROS

  • No cross-talk
  • Initial state can be loaded as an image?
  • Clean up is trivial

CONS

  • The In-memory database and MySql might not support the same features or differently
  • There may be scaling issues

My question is: what would be the best way to achieve this? Is there a best-practive for this type of thing?

Thanks in advance,

Steve.

i'd go with option 3 ... using a separate schema or database with the same structure/infrastructure as your live database.

PROS

  • Easier to implement
  • No sublte differences can occur
  • Doesn't polute the live database with sample data
  • The MySql will support the same features
  • There won't be scaling issues

CONS/things you'll still need to solve:

  • Initial state - and i'd suggest a simple script/routine to pre-populate as needed
  • Clean-up is not automatic - and again a simple script/routine at end of session

Normally when you have a guest based system providing sample data, you don't point to the live database for these users - you point them to a special guest version. There are many reasons for this, but the main one is that you can roll the database back to a checkpoint of the sample data without affecting the live users.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM