The Quandary of the Single Table Web Site

By Deane Barker

Many smaller projects need a single table of managed data in an otherwise static website. What’s the best way to handle these situations?

In this post, the author explores the challenges and considerations of creating single-table web applications. He discusses the implications of maintaining a single data structure, the trade-offs involved in the approach, and the potential limitations it poses for scalability and complexity. The piece emphasizes the importance of weighing the benefits against the drawbacks when designing such systems.

Generated by Azure AI on June 24, 2024

What do you do with sites that need a single table of data updated? These are sites which are totally static, except for this one thing…

For instance, we have a client for which we built a static site. But they have a page which lists all the locations where you can buy their stuff. This list changes a lot. They don’t want to keep calling (and paying) us to update this, so they want an interface where they can manage the list themselves. The list couldn’t be more simple – if you implement in SQL, it’s a flat, five-column database table.

This happens a lot – the sites are all static except for one element, be it a list of locations, events, the ubiquitous “Latest News,” etc.

Some common themes

  1. The table is self-contained – it has no foreign keys to any other table (indeed, it’s the only table in the database). It is an island of data unto itself.

  2. The “objects” often extend past the “page” or “post” model (more fields are needed), so this precludes using a blogging system.

  3. You can do the display logic in some other manner. All you need is a way for the users to administer the data.

  4. Access is binary. One password gives the bearer access to the whole thing.

So what do you do? The idea is to do something as simple and fast as possible, with as little repetitive coding as you can get away with.

So, how do you handle it?

This is item #256 in a sequence of 361 items.

You can use your left/right arrow keys to navigate