Wednesday, March 23, 2011

Database: Speeding Up Your Website’s Database

http://www.smashingmagazine.com/2011/03/23/speeding-up-your-websites-database/


Ways to speed up your website by optimizing your database.

 Many server administration packages (like cPanel or Plesk) provide phpMyAdmin for this task. You’ll need to enter your database name, user name and password.

1. Indexing:
Columns like customerid — which deal with a lot of WHERE conditions with = or < or > and have many possible values, should be indexed. This is like the index at the back of a book: it helps the database quickly retrieve indexed data. This is one of the quickest ways to speed up database queries...
 ...But you should also index any columns that refer to ID numbers in other tables, such as customerid in the example above. These are sometimes referred to as FOREIGN KEYs.

It may seem that you should go ahead and index everything. However, while indexing speeds up SELECTs, it slows down INSERTs, UPDATEs and DELETEs. So, if you have a products table that hardly ever changes, you can be more liberal with your indexing. But your orders and order items tables are probably being modified constantly, so you should be more sparing with them.

2. Optimizing Tables
MySQL and other kinds of database software have built-in tools for optimizing their data. If your tables get modified a lot, then you can run the tools regularly to make the database tables smaller and more efficient.

3. Making Sure To Use The Cache
Just as a Web browser caches copies of pages you visit, database software caches popular queries.
  3a. Outgrowing Your Cache: In this case, increasing the size of the cache might help. But giving more server RAM to your cache means spending less on other tasks, so consider this carefully.

4. Making Your Own Cache

5. Reducing The Number Of Queries By Using JOINs

Thursday, March 17, 2011

CMS: How to Evaluate What CMS to Use

http://sixrevisions.com/web-development/how-to-evaluate-what-cms-to-use/

Make an informed decision on what CMS is right for you.


Here are eight characteristics that a good CMS should have:


1. Intuitiveness: easy to understand and use


2. Flexibility and Ease of Customization
* make sure that you’re not obligated to use their design templates.


3. Extensibility via Plugins and Modules


4. No Need for Programming Knowledge


5. Optimized for Performance and Speed


6. Security


7. Documentation and Community Support


8. Emphasis on Web Standards and Best Practices



comments 1: 


one important missing feature for many of us in Content Management:


The ability to maintain with ease a multilingual website, i.e. exactly the same website in English, Spanish and Portuguese.


Some systems like Joomla or wordpress have plug-ins but in the end it becomes so difficult to manage a ML website with them.


comment 2: 


I have used WordPress and Joomla. From the two i think Joomla is more easily editable via admin menu with modules, plugins and components. But it has some serious problem with code, it contains TABLES and other dirty stuff, not SEO friendly.


Wordpress is more clean organized, more “modern” and SEO friendly. I like everything about it, the only bad thing is that you can only add widgets and modules to the sidebar when you are in admin menu.


comment 3:


After becoming acquainted with WordPress, Joomla, and Drupal I have come to a couple of conclusions with them.


WordPress is a fantastic Blog CMS. Not a full featured website CMS. For full feature websites I like Drupal over Joomla. Joomla was a great place for me to start understanding how larger CMS systems work as it provided most of my needs out of the box, but now I like the variety of options and updates that the Drupal Community puts out. Drupal can be daunting to someone new as there are quite a few contributed modules and some that tackle the same problems. This can confuse and annoy those new to the game.


Comment 4:


Good article. We use Joomla and WordPress. Still have not had the need to look for something else. But it’s always fun to experiment, so I may try a couple of the above. Thanks!

SEO: 10 Excellent SEO Tips That Will Improve Your Web Design

http://sixrevisions.com/content-strategy/seo-tips-improve-web-design/#more-5015

10 great SEO tips for search engine friendly web design without sacrificing your creativity and style.

1. Make Sure Your Site Navigation Is Search Engine Friendly
* Dont use flash
* rather use CSS and unobtrusive JavaScript

2. Place Scripts Outside of the HTML Document
* Externalize JavaScript and CSS.

3. Use Content That Search Engine Spiders Can Read
* Keep good structure for content (headings, paragraphs, and links).

4. Design Your URLs for Search Friendliness

5. Block Pages You Don’t Want Search Engines Index

6. Don’t Neglect Image Alt Attributes

7. Update Pages with Fresh Content

8. Use Unique Meta Data

9. Use Heading Tags Properly

10. Follow W3C Standards

Tuesday, March 15, 2011

* Technical Web Typography: Guidelines and Techniques

A Complete Guide to VPS Hosting

http://sixrevisions.com/website-management/guide-vps-hosting/

comment: While a VPS is a good start, they still have limitations and issues. My first VPS crashed often, and was subject to the other VPS users on my box. Maybe I had bad server roommates.
I would highly suggest a cloud server in this day in age. Affordable like a VPS, but 10x more flexible and expandable. A cloud server runs more like a dedicated—easy to grow in size as needs for hard disk and ram are needed.
Both rackspace and liquid web offer great cloud systems.
rackspace cloud – rackspacecloud.com
liquidweb cloud – stormondemand.com
both highly reliable, excellent support, and well priced.

Effective "Coming Soon" Pages

Thursday, March 10, 2011

Database: Some truths about CMS Database

http://www.ltcreations.com/database/database.html

http://www.the-web-book.com/browse/index.html
page 140, 200 - Creating Database.
---------------------------------------------------
Normalization:
Page 201: The golden rule of database design is: "don’t store anything more than once.  Instead, store it

just once, give it a unique reference number, and refer to it by that number in future".  Why?
Because it’s a much safer way to ensure that the database content remains accurate.  If you
need to change something, you only need to change it once, and all references to it are
automatically up to date

Designing databases in this way, ie with information referenced by a unique number, is known as normalization.  It’s often harder than it looks, but is well worth the effort invested.  It ensures that your database, ie your collection of related tables, is working at peak efficiency.


MySQL is known as a relational database.  Hopefully you can now see why.  Within the database is a collection of tables, and the information in those tables is often related.

Referential Integrity
A normalised database, where each type of data item is held in a separate table with a unique id, makes a great deal of sense.  It's by far the most efficient way to store and manage information, whether you're designing a booking system for a 10-room hotel or an inventory manager for a web site the size of Amazon.  However, it's important to ensure that you don't end up with tables that refer to non-existing information.  In database terminology, this means making sure that you maintain the referential integrity








.

SEO: Drive Traffic With SEO and Social Media: Webvanta

http://www.webvanta.com/ebooks/Webvanta-5tips-for-better-sites.pdf

Drive Traffic With SEO and Social Media

Most web site owners want their sites to be found – they’re investing in their sites to attract
an audience, whether they be customers, fans, or converts. To do so, you need to integrate
the site with social media, and pay attention to SEO.
Search Engine Optimization (SEO) is a complex topic that involves a few facts, lots of
“best practices”, piles of superstitions, a lot of hard work. It’s not surprising that most site
owners are completely at sea when it comes to SEO — yet it is vitally important to them.
Google is the Elephant
Search engine optimization is perhaps the most confusing, ill-defined, and controversial
part of web design today. It has a certain "blind men and an elephant" quality to it, with
Google being the elephant.


There is a vast amount of advice available on SEO. You can spend your life reading about
it, and anywhere from hundreds to tens of thousands of dollars a month on SEO
consultants.
This situation leads to a sense of overwhelm among many web designers, and especially
among site owners. As a result, they just ignore it. We see web sites every day that have
terrible SEO.
It’s a shame, because everyone wants to bring more traffic to their site. Search engines
bring free traffic, and for many sites they are the most important source of visitors.
The good news is that there are some simple things you can do that will provide a huge
boost. Follow the easy steps outlined here, and you’ll be way ahead of the average site.


Make Sure Every Page is Accessible and Has a URL
The most fundamental thing you must do is to ensure that every page of the site is
accessible by following links, starting from your home page, even if JavaScript is disabled
and Flash is ignored. (You need to take these same precautions for accessibility as well as
for SEO.)
This is not hard to achieve, as long as you are not using Flash for your navigation, and
JavaScript is used as it should be: for enhancement, and not as a requirement.
You can also easily do an end-run around any issues by linking to a site map from your
footer, and including a link to every page in the site map. Providing an XML site map also
helps when not all pages are directly linked.
Every page must have a unique URL. That means not building the entire site in Flash, or
using Ajax to swap out the contents of a page without changing the URL (unless you think
carefully about the SEO implications). It’s OK to use JavaScript to hide and reveal parts of
a page, as long as all is revealed if JavaScript is disabled (which is how the standard jQuery
tab and accordion widgets work).


Keyword Research
Before you can begin optimizing your pages for search, you need to know for what
keyword phrases you are optimizing.
Your gut feel will get you started, but you need to use research tools to find out what
phrases people are actually searching for the most, which sites rank well on those terms, and
how much traffic each term gets. (See www.webvanta.com/5tips-resources for links.)
Keyword research can be valuable for making sure you are targeting the right keywords,
and that they are used in lots of searches.
The keywords you have in mind may or may not be the ones that are being searched for by
the people you’re trying to reach. Small variations in keywords and phrases can have a big
impact.
This is one of the first things for which you might want to bring in an SEO consultant, or
you can spend the time to learn to use the research tools yourself.
Once you have settled on a set of keywords you are targeting, you can focus your efforts.
For each targeted keyword, you should make an ongoing effort to add content focused on
that keyword, get incoming links that use it in the anchor text, and track your position in
the search results so you can tell if you are making progress



The All-Important Page Title
Assuming these basics are taken care of, then the two most critical things are the page title
(the metadata title in the <title> tag, which appears in the browser’s title bar) and the
contents of the first <h1> element on the page.
The page title is super-important, yet it is very commonly overlooked or written poorly. If
your site has the same title on every page, you’ve thrown away most of your SEO
opportunities. Go in right now and write a unique page title for every single page.


The page title can include the name of the site, but it should begin with content that is
unique to each page and describes that page. The page title will appear as the headline in
search results, so it must be written in such a way that the first few words telegraph to the
user that this page has what they’re looking for.
Having a page title like "Home", "Products", or "About Us" is useless (and very common).
You can’t assume that the viewer of the search results (or the search engine) has any
context; the title must be completely explicit, and include as many keywords as you can
reasonably get in there. Keep the length below 65 characters.
For example, instead of "Products", use something like "Quality dog food and cat food at
the best price"


Next Up: The Visible Headline
Next most important is the visible headline on the page, which should be in an <h1> tag.
We see a number of common mistakes here:
• Pages that have no headline
• Headlines that are in <p> tags, or other tags, which are then styled to look like
headlines, or in images
• Headlines that aren’t explicit enough
Make sure that your page begins with a headline in an <h1> tag. You'll help the search
engines and the human readers. You can style the h1 to look however you want; it doesn’t
need to be visually huge.
Sometimes you want the main headline to be something clever, or cute, that lacks the
keywords you’d like to have in the headline for SEO. In this case, you may want to put the
actual headline in a <p> tag, styled to look like a headline, and then have the SEOoptimized headline below it in an <h1> tag, styled to look like a subhead or an introductory
paragraph. In writing that headline, keep the site visitor in mind, but make it more explicit than you
might naturally do. This is much the same as for the metadata page title, except that you
may want something shorter on the page.
For example, while you might use "Experienced dog grooming services for Sonoma
County, in Santa Rosa, CA" for the metadata page title, but use "Expert Dog Grooming"
for the h1 tag (the page title that appears on the page).

Now Fill In the Meta Description
The metadata description tag is important not for getting your page listed on the search
results page, but for getting users to click on the result if they do see it.
The search engine will show your description as the two lines of text below the headline; if
you don’t provide a meta description, it will grab something from the body of your page,
which may or may not be what you want.
The description should be about 150 characters long, since that is what fits in a typical
search listing. Think of it as a teaser that promotes your page. Write it for humans, not for
search engines. But it is helpful to include your targeted keywords, because the search
engine will highlight them, drawing users to your listing.

Don’t Worry About Meta Keywords
The keyword metadata field is not worth worrying about, at least on your first pass. Google
ignores the keywords in this field, because they are too easily abused. (Too many people put
“Britney Spears” in the keywords, for example, not because their page had anything to do
with Britney but because it is one of the highest-volume search terms.) Other search
engines may use them, but you won’t sacrifice much by ignoring them.
This does not mean you can ignore knowing what keywords you are targeting; that is an
entirely different matter. But the place to use keywords is in your page titles, headlines, and
body copy — not in the keywords meta tag.


Incoming Links
Everything we’ve discussed up to this point is what is called on-page optimization: things
you can do on your site, and that are entirely under your control.
Unfortunately, it’s not enough.
If your content is so unique that people are searching on phrases that exist only on your site
and a handful of other places, on-site optimization may be all you need. But for any search
term that is remotely competitive, you need incoming links in order to rank well in search
results.
Incoming links are important because of the way search engines rank pages. The on-page
optimization ensures that the search engines can figure out what each page is about. But
the web is a very big place, and even for any single niche topic, there are thousands, if not
hundreds of thousands, or even millions, of pages.
How does a search engine decide which pages to put at the top of the search results?
The distinguishing factor is incoming links.


All Links Are Not Created Equal
You want as many links to your pages as possible, but some links are much more valuable
than others.
Search engines don’t disclose the details of their algorithms, but there are a few points
about incoming links that are generally agreed upon:
• The rank, or authority, of the site that is linking to you has a huge influence. A
single link from whitehouse.gov is probably worth more than thousands of links
from little-read blogs. Links from .edu and .org sites are often thought to be more
valuable than links from .com sites.
• The anchor text (the text to which the link is applied) is important. If the link says
“click here”, then that link text tells the search engine nothing about the site being linked to. But if the link says “San Francisco Hotels”, the text tells the search
engines a great deal.
• Links from many sources have a special attribute applied, “rel=nofollow”. This tells
search engines not to take that link into account. Nofollow was invented to reduce
the link spam on Wikipedia and soon spread to many other sites. So while links
anywhere are good for driving traffic to your site, many links in blog comments and
forums do not help your search rankings.
• Google is thought to penalize sites if large quantities of links to your site show up
in a short period of time, especially if the links are identical. This is presumably an
attempt to defeat people with a large network of sites that exist just to provide
backlinks, as well as other “black hat” SEO techniques.
• One-way links (a site that links to you but that you do not link to) are thought to
be more valuable than reciprocal links.
You need to solicit links, but you should do so carefully, choosing sites that relate to your
topic and have good search ranking themselves. It is helpful to suggest link text, but vary it
from time to time.
You will get solicitations from random sites asking for reciprocal links. These links are of
little value, and may even hurt your rankings, so just ignore these requests unless the site is
one you would want to point people to anyway.
Getting good links is a slow and time consuming task, but it is one that is essential if you
are going to get sites to rank well on competitive terms. If you have great content that
people share with their friends and blog about, then incoming links may happen on their
own.
If you want to be more proactive, do searches on the terms on which you hope to rank.
Look at what sites rank well, and look for ones that might link to you. If there are
influential blogs, add your comments to their posts regularly. This may not give you useful
links back, but it helps to build a relationship and a reputation.


Adding Content Frequently
Search engines love content—and so do people. There’s no substitute for having lots of
quality content, and adding more every week, if not every day.
When search engines see that new content is added to your site frequently, they will index it
more often, and you’re more likely to rise up in the results. The more content you have, the
more likely it is that someone will link to a particular piece of content, simply because you
have more opportunities to hit someone’s hot button.
The easiest way to add content frequently is with a blog. Blogs provide a natural vehicle for
whatever content you can produce, and they’re a structure that both readers and search
engines understand.
By using tags or categories with your blog, you automatically get pages that list all the
articles for a particular tag or category. These pages can be very attractive for search
engines.


Write for Readers, with a Touch for Robots
When you are writing blog posts (and other web content), you should write first and
foremost for your human readers. But you should also stretch a bit to include your targeted
keywords more frequently than may otherwise seem natural.
To a human reader, context is often apparent, and headlines written solely for readers often
leave out important keywords. With a little creativity, you can usually get some more
keywords into your headlines, as well as into the body of your posts, without making the
writing seem strained.


Integrating with Social Media
Aside from search engines, social media can be a major source of traffic. Links from social
media sites typically have their “nofollow” attribute set, so they often won’t directly improve
your search engine rankings. But they bring you traffic just like search engine results do.






Social media integration works two primary ways:
1. Linking from your site to your social media pages and accounts. A business that is 
taking advantage of social media should have, at a minimum, a Facebook page, a 
LinkedIn page, a Twitter account, and a YouTube channel.
2. Making it easy for your site visitors to add content from your web site into their
own social media streams, sharing your content with their social networks.

Implementing the first of these is just a matter of providing an appropriate icon and linking
it to a particular external site. Most services provide an icon or badge that you can use.
The second is a little more complicated. At a minimum, you want visitors to your site to be
able to click a “share via xyz” icon and have a link to the current page pushed out to the
visitor’s network. You can often do this with widgets provided by social networking sites,
and you can use general-purpose sharing widgets such as that from AddThis.com.
In addition, you may want to directly include content from your site on your social media
pages, and vice versa. Each of the services provides widgets you can use for this, and there's
a variety of third-party widgets that either display information from an RSS feed or access
a social networking site via its API to get content to display.


Choosing CMS: Webvanta


3 .Pi c k   t h e   Bes t   C M S   fo r   Yo u r   Need s 
All but the very simplest of sites should be built with a content management system
(CMS). A CMS makes adding content, and keeping it updated, much easier.
There are hundreds of content management systems in the market today. So how do you
choose the best one for you? In this chapter, we’ll lay out the CMS landscape and give
some suggestions on how to evaluate them and which ones are most appropriate for
different circumstances.


Static Sites: Simple But Limited
We often hear from designers who have been building static web sites for years, and
question whether they need to shift to using a content management system (CMS).
They’re comfortable with their workflow, typically building sites in Dreamweaver and then
pushing them up to a server via FTP.
A static site is the simplest to create and launch, and the least expensive to host. But it is a
poor choice for all but the simplest sites. In the past, static sites were very common, but
today they are rarely the best approach. Among their many limitations, static sites:
• Generally cannot be updated without dealing directly with the HTML code, making
them hard for anyone but the coder to maintain.
• Do not support blogs or RSS feeds, cutting off one of the easiest ways to add content
regularly and improve search engine optimization.
• Often require entry of the same content in multiple places, making it harder to update
and often leading to inconsistencies within the site.
• Do not automatically create any pages, so every page on the site needs to be manually
built.


Why You Should Use a CMS
If you’re building six-page brochure sites that are rarely updated, then perhaps you can work
without a CMS. But for almost anything else, you should be using a CMS. Here’s why:
• Your clients can edit their own content. This is hugely empowering to them, and it
results in sites that are updated more frequently and are therefore more useful for
visitors and deliver better business results.
• You don’t have to spend time on every little content change, so you have more time for
creative work. You came to web design to be creative, not to spend time updating a
store’s hours or announcing their next sale, right?
• When the time comes for design changes, you can update a template or two, and the
entire site is instantly updated to the new design. No more tediously making the same
change to page after page.
• Your clients’ sites can have RSS feeds, commenting, and other features that aren’t
possible on a static site.
Given all these compelling reasons, why isn’t everyone building sites with a CMS? Because
it has added complexity to the task of building the site and, if that task is contracted out, it
can add significantly to the cost.

Today, costs have fallen low enough that there is no reason not to use a CMS on virtually
every project.


Choosing a CMS
Once you’ve made the decision to use a CMS, you’re then faced with the daunting task of
choosing a particular CMS. There are literally hundreds of them, and each has its fans.
To begin making sense of the wide range of offerings, first consider each product's target
audience. At the low end, there are simple systems that are designed for small businesses or
individuals to build their own simple sites or blogs; these include WordPress.com (the
hosted version of WordPress), Intuit Sites, Google Sites, and Godaddy’s WebSite




Tonight. Assuming you’re a professional designer building custom sites for business clients,
you can discard all of these immediately; they lack the design flexibility and the power for
your needs.
At the other extreme, there are high-end content management systems aimed at big 
organizations that are equally unsuitable. Systems such as SiteCore and SDL Tridion 
typically have five- or six-figure price tags, putting them entirely out of range for the vast 
majority of sites. 
These systems typically have lots of features designed for big organizations, with multiple 
user roles, workflows for sending content from an author to an editor and then to a site 
manager for approval before going live, and so forth. 
In this ebook, we’re assuming you’re building sites for small to midsize businesses, and these 
features just aren’t very useful for this class of clients. In terms of design flexibility and ease of use, these "high-end" systems are often no better, and sometimes worse, than opensource or inexpensive options

Hosted vs. Self-Hosted 
Your first big decision point is whether you are going to manage the software and its 
hosting yourself, or use a SaaS (software as a service) solution:
• A hosted (SaaS) CMS, such as Webvanta, LightCMS, or SquareSpace, is a selfcontained solution that you manage via a web browser and is operated by a third party.
• A self-hosted CMS, such as WordPress, Drupal, Joomla!, or Expression Engine, is a 
body of software you download from the source, and then modify, upload to a server 
(which you typically rent from a hosting company), and manage on your own.
If you are a developer at heart, like to be able to modify the back-end code, and have a 
budget of at least a few thousand dollars per site, then self-hosted solutions can be a good 
choice. They are used for millions of sites, including many well-known ones.

The Growth of Hosted CMS Options
The option to use a hosted CMS is relatively new, and we believe it better serves the needs 
of designers and site owners who want to focus on the design and content of the site, not 
on the technology.
If you use a self-hosted CMS, you are responsible for all the code that runs the site. This 
can be a nightmare when hacks occur; with a CMS such as WordPress, sites get hacked 
with terrifying frequency.
Even in the absence of such nightmare scenarios, using a self-hosted CMS inevitably 
means spending more time dealing with back-end code, software updates, security, 
backups, and server management. You’re exposed to much more of the full technology 
stack and operational issues, and it’s hard not to get buried in details.
With a hosted CMS, all that is taken care of for you.

In the past, most hosted CMS offerings were very limited in terms of design flexibility. 
Even today, few provide the flexibility to set up custom databases, so you can organize 
things like business listings and news items, and have pages automatically created for each 
item.

The Hosted Service Tradeoff
Life is full of tradeoffs, and the decision to use a hosted CMS is no exception. With any 
SaaS system, you’re giving up control over the back-end software, in return for being 
relieved of all responsibility for building, maintaining, and serving that software.
As long as the system meets your needs, this is generally an excellent tradeoff. You get to 
focus on your design and business needs, and let someone else take care of the technical 
details and day-to-day operations.

Picking the Right Service
Part of the bargain you’re making when you use a hosted service is that you’re going to live 
with whatever that service is designed to do (or that it can be extended to do), so it’s critical 
to pick one that meets your needs. Here’s some hosted services to consider:
• If you are building custom web sites, for which you need full control over the design 
and the organization of content, Webvanta is an outstanding solution (if we do say so 
ourselves).
• If all you need is a simple blog, Wordpress.com is an excellent option.
• If you want more design flexibility but don’t have a lot of content and don’t need 
database capability, SquareSpace is a great product.
• If you’re building an e-commerce site, take a look at Shopify and BigCommerce.
• If you need a private social network, Ning is the leading hosted solution.








Choosing Among Self-Hosted Options
If you don’t want to use a hosted CMS, then you have two choices: open-source software
and commercial software.
Open-source software is extremely popular, and it can be an excellent solution if you have
the skills and desire to manage it well.
The biggest downside is that there is generally no support provided by the authors of the
software. You’re typically depending on the user community for support. Fortunately, there
are large user communities for the major open-source CMS systems — but it can still be
frustrating trying to get questions answered and problems resolved.
Of the open-source content management systems, WordPress appears to be the most
popular, at least among designers in the U.S. Joomla! has more community features, so if 
you are building a community-oriented site, Joomla! may be a good option.
The “big gun” of the open-source CMS world is Drupal. It is used by many big-name sites,
from whitehouse.gov to major media properties. In the hands of a capable developer,
Drupal is a powerful tool, and there is no doubt that it is capable of delivering highly
customized, database-driven sites.
Most designers, however, tell us that Drupal is more than they can manage on their own.
Unless you’re a developer who likes to work with PHP, you’re likely to want to outsource
the setup and customization of Drupal, and this typically costs several thousand dollars. For
a large project, it can be an excellent solution, but for a typical small to midsize business
site, WordPress is more efficient.
The most popular commercial CMS among designers in Expression Engine. It gets high
marks from designers who use it, though it can be more involved to set up than
WordPress.


CMS Selection Summary: Things to Consider
There’s no way to make selection of the best CMS for your needs a simple task; it is just an
inherently complex landscape, with many options.
Here are some factors to consider as you are evaluating CMS options:
• Ease of setting up your custom HTML and CSS so the site looks exactly how you
want
• Whether the template system works around your code, or has a fixed approach to
page structure that you must work around
• Availability of the features you require, either as core components or as add-ons
• Support for blogs, with RSS feeds
• Ease of use of the back-end interface, both for you (the designer) and your client
(who will be maintaining the content)
• Support for custom database structures, so you can make the structure match the
needs of a particular site
• Whether any PHP or other back-end programming is required to customize the
system
• Ease of adding images, for use in photo galleries or combined with text, and
whether images at various sizes can be generated automatically or need to be
created by you and uploaded individually
• Level of support available when you have questions, find bugs, or need
modifications to the software





Database: Database-Driven Sites Put the Content at the Center

http://www.webvanta.com/ebooks/Webvanta-5tips-for-better-sites.pdf
Database-Driven Sites Put the Content at the Center
Storing the site’s information in a database of content, rather than as pages, has many
benefits. When you put the data at the center of your architecture, then the web site
become only one of many ways you can deliver the content.

Each page is created from a skeleton that provides the page structure, with content drawn
from the database. This approach puts the information at the center of the site, rather than
its presentation (the pages). It brings many powerful advantages over the static HTML
approach:
• Content and markup are separate. Content editors can add and modify content using
web-based forms that are independent of any page on which the content may be
presented.
• Content is easily reused. When the content is in the database, it can be displayed on as
many pages as desired.
• Content can be intelligent. Back-end software can check the database to make sure
links are valid, to expire content after a certain date, or collect content from other
sources (such as RSS feeds).
• Changing the visual design is easy. Hundreds or thousands or millions of pages can be
generated from just a few templates, and only those templates need to be changed to
redesign the entire site.


So Why Aren’t All Sites Built This Way?
Given these compelling benefits, why aren’t all sites built using database-driven designs?
Many sites start out small and grow over time, so they end up pushing the simple, static
approach far beyond the realm in which it works effectively.
The biggest issues are skill sets and cost. Since most web designers have neither the
expertise nor the desire to write back-end (server-based) software, or design database
architectures, moving to a database-driven site structure can be a big hurdle.
With the right technology and partners, however, creating database-driven sites with a
robust information architecture need not be significantly more difficult or expensive than
building unstructured sites.



A Recycling Example
Let’s look at a specific example of how this can affect the design of a site. Suppose you are
building a site about recycling. You might want a page about glass, another about plastic,
and another about paper. For each of those pages, you’d have some photos, some general
information, related companies, and lists of resource links.
If you’re not thinking in terms of a database, you’d approach each of those pages as a
unique design. But in a database-driven site, glass, plastic, and paper would each be
categories. For each category, you’d have a main image, additional images, a description, a
list of companies, and a set of links.
With this approach, you only have to design one category page. For the site owner, adding
more categories, or more information about any category, is just a matter of adding more
information to the database.
When you add a company or a resource link to the database, you just indicate which
categories it should be associated with. It then appears automatically on those category
pages.

You can also have multiple sets of categories. For example, if the recycling information
varies from one geographic region to another, then you could assign items to both a
material type category and to a region category, and then the site could automatically have
separate pages not only for each material type but also for each region.
This approach makes the site easier to maintain, and it reduces the number of pages you
need to design, but it does put some additional constraints on you. Each category page 
should follow the same structure, and the content areas need to be able to adapt to varying 
amounts of content. You can’t hand-tune the design of each page to the degree you can 
with a static site.
The payoff, which makes it all worthwhile, is great: fewer pages for you to design, and a
site that is much easier for the site owner to maintain. In addition, you can now provide the
information in the database via an RSS feed, or create different pages with some of the
same information, such as for a mobile version of the site.
------

A more powerful approach is to create a custom database structure to store the project
information. Now the person entering the content can do so via a database input form,
with fields for each of the elements of the page. These might include the name of the
project, the city, its cost, and the date of completion. Some advantages of this approach:


• Separation of content and markup. The person entering the content does not have to
worry about any markup surrounding the text, such as which heading tag should be
applied to the name of the project.
• Consistent information. The content entry form ensures that the same kind of
information is entered for each project.
• One design, many pages. The designer can create a single template page from which
the system produces all project pages, and changes are instantly applied to all projects.
• Automatic list pages. Lists of projects can be created automatically, and can be filtered
and sorted by any of the project attributes.
You can easily build a page that displays all the projects in a particular category. From this
single page, you automatically get a page for every category. And there’s never a need to
enter the same project information twice; just assign it to two categories, and it shows up
on two list pages.
This is but one example of how a custom database structure can make a web site easier to
maintain and more useful for its visitors.


Many Paths to Database-Driven Sites
There are many ways to build a database-driven web site. You can code it all from scratch
in PHP, use a CMS like Drupal, or build it upon a web application framework such as
Ruby on Rails.
All of these solutions share some common drawbacks: they generally require developers to
create (or at least configure) the software; the development cost is usually much higher
than clients would like; and the web designer has to deal with contractors, additional
complexity, and reduced control.
Webvanta is one hosted CMS that is designed to make it easy to create custom databasedriven sites, without requiring any back-end programming.