In this demo I have created a table called "BreadCrumbItem" to save the breadcrumb items. Each has an name, url and can have a parentId. The "BreadCrumbWebBlock" webblock receives a identifier of the current breadcrumb item (that correspond to the actual page being viewed and for which we want to show the breadcrumb), and will query the "BreadCrumbItem" table for getting the current item and its parents, so that is possible to create the breadcrumb.
Other pages have been added to show how the breadcrumb is working.
On table "BreadCrumbItem" changed attributes name and URL to be mandatory.