WordPress: DB Housekeeping

Als sogenannter WordPress »end user« kommt man mit der Datenbank hinter WordPress nicht zwangsläufig in Berührung. Der Anwender braucht sich also keine Gedanken zu machen, wie, wo und in welchen Strukturen WordPress Artikel, Kommentare, Kontroll- und Stammdaten abspeichert. Genau das macht ja auch einen Teil des Komforts aus, den WordPress seinen Anwendern bietet. Einzig bei der Datensicherung, in Form eines Dumps der MySQL Datenbank, könnte man Einsicht in die oberflächlich nicht sehr erhellende Tabellenstruktur nehmen. Auf Basis einer WordPress 3.0 Standardinstallation gibt es hierzu eine sehr detaillierte Information in der WordPress Database Description. Dort heißt es sinngemäß, daß vor Manipulationen an den Datenbeständen eine Datensicherung durchgeführt werden sollte (und man sollte auch wissen, wie eine korrekte Rücksicherung durchzuführen ist; Anm. d. Verf.). Weiter heißt es auch, daß Entwickler von Plugins, die die WordPress Datenbank manipulieren, ausschließlich selbst für die Datenintegrität verantwortlich sind. Dies ist nicht der einzige Grund, warum ich möglichst keine Plugins zum Einsatz bringe.

Vorüberlegungen

Worum geht es hier? Konkret: WordPress legt in der Tabelle wp_posts beim Speichern/Publizieren und durch Autosave, Sicherungskopien von Posts/Artikeln an, die ich nicht benötige, die diese Tabelle unnötig aufblähen, und daher gelöscht werden sollen. Pro veröffentlichtem Artikel kann ich durchschnittlich sechs sogenannter revisions feststellen, und um die geht es hier. Sie tun nichts und sie stellen weder für WordPress noch für MySQL ein Problem dar, aber sie erzeugen zwangsläufig einen sehr großen Dump bei der Datensicherung. Und so, wie ich meinen Papierkorb regelmäßig leere, möchte ich auch überflüssige Datensätze aus dieser Tabelle entfernen.

Beispiel: Ein neuer Artikel landet in der zentralen MySQL-Tabelle wp_posts und erhält dort die ID 4711. Dieser Post behält diese ID 4711, bis er selbst einmal gelöscht werden sollte. Alle Sicherungskopien, die durch Speichern oder mittels Autosave erzeugt werden, erhalten neue IDs (4712, 4713, …). Dadurch, daß der publizierte, also sichtbare Artikel trotz aller Revisionen, die über ihn kommen, seine ursprüngliche ID 4711 behält, müßten auch alle Fremdschlüssel immer auf das richtige Ziel weisen. Beispielsweise die Kommentare: In der Tabelle wp_comments weisen alle Kommentare zu diesem Artikel über das Feld wp_comments.comment_post_ID auf die wp_posts.ID 4711, gleichgültig welcher Revisionsstand dem Artikel zum Kommentarzeitpunkt gerade zugrunde lag. Wenn also nicht sonst jemand unsauber eingegriffen hat, kann es in diesem Zusammenhang also keine verwaisten Datensätze geben. Das gilt übrigens in gleichem Maße für die Tabellen wp_postmeta und wp_term_relationships.

Query Select

Bis hierhin ist also klar, daß die gesuchten Revisionen in der Tabelle wp_posts, sofern sie eindeutig identifiziert werden können, gefahrlos gelöscht werden dürfen. Dies unterstellt, daß sich nicht irgendein Plugin auf sie stützt. Allen Datensätzen, die Revisionen repräsentieren, ist folgendes in der engsten Form gemein:

wp_posts.post_type = 'revision' und
wp_posts.post_status = 'inherit' und
(wp_posts.post_name LIKE '%revision%' oder
wp_posts.post_name LIKE '%autosave%')

Wahrscheinlich würde eine Prüfung auf revision ausreichen, aber das ist nicht gesichert. Um ein Fahrgefühl zu bekommen, kann man zunächst einmal eine Select-Abfrage starten, zum Beispiel mittels phpMyAdmin:

SELECT * FROM wp_posts
WHERE (post_type = 'revision') AND
(post_status = 'inherit') AND
((post_name LIKE '%revision%') OR (post_name LIKE '%autosave%'));

View Select Count

Nun ist diese Liste nicht wirklich hilfreich, zeigt aber, daß die richtige Selektion für das anschließende Löschen durchgeführt wurde. Sinnvoll für zukünftige Zwecke könnte es aber sein die Abfrage so zu modifizieren, daß sie nur die Anzahl der revisions ausgibt und als View gespeichert wird. MySQL kann vorformulierte SQL-Queries als sogenannte Views speichern (MySQL 5.1, Kapitel 21, Views). Das nachstehende SQL-Statement erzeugt einen solchen View mit dem Namen view_posts_revisions_count der im Ergebnis die Anzahl der gefundenen Artikelrevisionen angibt. Der Name des Views kann natürlich im Rahmen der MySQL-Vorgaben beliebig gewählt werden.

CREATE OR REPLACE
ALGORITHM = UNDEFINED
VIEW view_posts_revisions_count AS
SELECT count(*) AS 'Anzahl' FROM wp_posts
WHERE (post_type = 'revision') AND
(post_status = 'inherit') AND
((post_name LIKE '%revision%') OR (post_name LIKE '%autosave%'));

Views werden in der MySQL Tabelle information_schema.VIEWS gespeichert. In phpMyAdmin findet man nach Verlassen und Neuaufruf der WordPress Datenbank die verfügbaren Views in der Liste der Tabellen auf der linken Seite. Views werden übrigens mit diesem SQL-Befehl ausgeführt:

SELECT * FROM view_posts_revisions_count;

Delete Revisions

Nachdem geklärt ist, wie Post Revisionen identifiziert und selektiert werden, und man sicher sein kann, daß, zumindest bei einer WordPress 3.0 Standardinstallation, keine Fremdschlüssel auf sie zeigen sollten, können diese Sicherungskopien nun gelöscht werden.

DELETE FROM wp_posts
WHERE (post_type = 'revision') AND
(post_status = 'inherit') AND
((post_name LIKE '%revision%') OR (post_name LIKE '%autosave%'));

Ergänzend kann noch angemerkt werden, daß die Sicherungskopien natürlich nicht bezugslos in der Tabelle wp_posts abgelegt waren. Zum einen existiert das Datenfeld post_parent, das bei allen Revisionen grundsätzlich die ID des ursprünglichen Posts (4711) enthält (nicht die ID seines jeweiligen Sicherungsvorgängers). Zum anderen gibt der Inhalt des Felds post_name Auskunft über die Sicherungsversion. Damit ließen sich veröffentlichter Post und seine Kopien wieder in eine zeitliche Reihenfolge bringen. Eine Prüfung, ob es Sicherungskopien gibt, die keinen Vater mehr haben, was aber nach dem vorstehenden DELETE zu spät wäre, könnte so erfolgen:

SELECT p1.* FROM wp_posts AS p1
WHERE p1.post_type = 'revision' and NOT EXISTS (
SELECT p2.* FROM wp_posts AS p2
where p1.post_parent = p2.ID );

oder als Variante mittels eines Joins

SELECT p1.ID, p1.post_parent, p1.post_date,
p1.post_title, p1.post_name FROM wp_posts AS p1
LEFT JOIN wp_posts AS p2
ON p1.post_parent = p2.ID
WHERE p1.post_type = 'revision' and p2.ID IS NULL;

Diese Abfragen sollten selbstverständlich keine Ergebnisse liefern.

Stored Procedures

Die vorstehende Löschroutine könnte man in einer Textdatei speichern und per copy and paste bei Bedarf in einen geeigneten SQL-Klienten (z. B. phpMyAdmin) kopieren und ausführen lassen. Bequemer ist es aber eine Prozedur anzulegen, die in der Datenbank gespeichert wird und jederzeit aufgerufen werden kann (MySQL 5.1, Kapitel 19, Gespeicherte Prozeduren und Funktionen):

DELIMITER $$
DROP PROCEDURE IF EXISTS proc_posts_revisions_delete$$
CREATE PROCEDURE proc_posts_revisions_delete()
BEGIN
DELETE FROM wp_posts
WHERE (post_type = 'revision') AND
(post_status = 'inherit') AND
((post_name LIKE '%revision%') OR (post_name LIKE '%autosave%'));
END$$
DELIMITER ;

Diese Prozedur wird in der MySQL Tabelle information_schema.ROUTINES gespeichert. Das MySQL Standardbegrenzungszeichen (DELIMITER) Semikolon, muß kurzfristig umgebogen werden, damit der Kern der Prozedur (hier DELETE) interpretationsfrei an den MySQL-Server weitergereicht werden kann. Damit ist zunächst nur die Prozedur dauerhaft eingerichtet worden. Der eigentliche Aufruf geschieht mittels eines Calls:

CALL proc_posts_revisions_delete();

Gespeicherte Prozeduren findet man in phpMyAdmin etwas versteckt unterhalb der Strukturdarstellung der WordPress Tabellen in dem Link Routinen.

Verwaiste Schlüssel

Wie eingangs festgestellt, beziehen sich laut der WordPress Beschreibung die drei Tabellen wp_comments, wp_postmeta und wp_term_relationships über ihre Fremdschlüssel auf die Tabelle wp_posts. Zur Feststellung, ob es hier Waisen gibt, muß die Integrität dieser Tabellen geprüft werden:

CREATE OR REPLACE
ALGORITHM = UNDEFINED
VIEW view_comments_orphan_count AS
SELECT count(*) AS 'Anzahl' FROM wp_comments
LEFT JOIN wp_posts
ON wp_comments.comment_post_ID = wp_posts.ID
WHERE wp_posts.ID IS NULL;

Wenn in der Tabelle wp_posts im Feld ID kein Gegenstück zu wp_comments.comment_post_ID gefunden wurde, wird für die Tabelle wp_posts ein Datensatz erzeugt, dessen Feld mit NULL gefüllt ist. Dieser Umstand wird abgeprüft und gezählt. Ein zweiter View für die Tabelle wp_postmeta würde so angelegt werden:

CREATE OR REPLACE
ALGORITHM = UNDEFINED
VIEW view_postmeta_orphan_count AS
SELECT count(*) AS 'Anzahl' FROM wp_postmeta
LEFT JOIN wp_posts
ON wp_postmeta.post_id = wp_posts.ID
WHERE wp_posts.ID IS NULL;

Fazit

Views sollten von einer Datensicherung ausgenommen werden, da die Rücksicherung Probleme bereitet. Zudem können sie im Schadensfall jederzeit wieder nachkonstruiert werden. Wurden verwaiste Schlüssel oder Sicherungskopien ohne Väter festgestellt, sollte man vor weiteren Manipulationen an den Datenbeständen ohnehin absehen und zunächst die Ursachen hierfür herausfinden. Durch das »in den Papierkorb legen« eines Artikels am Redaktionsarbeitsplatz wird in der Tabelle wp_posts das Feld post_status auf »trash« gesetzt. Die Revisionen des Artikels bleiben von dieser Aktion unberührt. In der Tabelle wp_comments wird das Feld comment_approved aller Kommentare, die sich auf den Artikel beziehen, auf »post-trashed« gesetzt. Erst durch das Leeren des Papierkorbs werden sämtliche Datensätze, die sich auf den gelöschten Artikel beziehen, aus allen drei Tabellen rückstandslos entfernt.
rh2011-07-004

Ratingagenturen zerlegen Europa

Ratingagenturen zerlegen EuropaDa war die Aufregung groß bei den Politikern des EU-Parlaments und der Euro-Staaten. Nach Portugal und Griechenland wertet die Ratingagentur Moody’s nun auch Irland nochmals herunter, genauer von Baa3 nach Ba1, und dies mit negativer Prognose. Am Beispiel von Irland hat der Moody’s Investor Service am 12. Juli 2011 eine sehr detaillierte Erklärung für diese Maßnahme veröffentlicht. Neben dem ausdrücklichen Lob für die bisherigen, erfolgreichen Anstrengungen Irlands zur Haushaltskonsolidierung, betrachtet Moody’s die anhaltend schwache Wirtschaftsleistung der Iren mit Sorge. Der Hauptantrieb für diese vorläufig letzte Ratingaktion, so heißt es weiter, liegt in der hohen Wahrscheinlichkeit, daß Irland auch nach dem Auslaufen des aktuellen EU/IWF Unterstützungsprogramms gegen Ende 2013 weitere Finanzierungsrunden der EU benötigt, bevor es sich selbst am Privatkundenmarkt wird bedienen können. Außerdem wird, gemäß der jüngsten EU-Vorschläge, die zunehmende Möglichkeit einer Gläubigerbeteiligung als Voraussetzung für weitere Finanzierungsrunden durch die EU, als überaus kritisch betrachtet. Eben diese Beteiligung des privaten Sektors am Schuldenerlaß stellt den key factor für Moody’s laufende Überprüfungen dar. Die negative Prognose wird zum Teil mit der Uneinigkeit der EU-Regierungen bezüglich der einzuleitenden Unterstützungsmaßnahmen für notleidende Mitglieder begründet.

Ratingagenturen sind nicht unfehlbar und ihr Arbeitsumfeld liegt nicht im naturwissenschaftlichen Bereich. Daher sind ihre Bewertungen, die sich zwar an festen Kriterien orientieren aber auch von Erfahrungswerten beeinflußt werden, nicht immer sofort für jedermann nachvollziehbar. Sie beurteilen den jeweiligen Ist-Zustand von Unternehmen und Volkswirtschaften. Sie beraten nicht und sprechen auch keine Empfehlungen aus. Wenn jetzt diese Ratings, insbesondere der großen drei amerikanischen Marktführer, zur Aktionsfläche von aufgeregten EU-Politikern wird, die Verschwörungstheorien nachgehen und sogar die Zerschlagung der Ratingagenturen fordern, dann wird die Hilflosigkeit dieser Volksvertreter überdeutlich. Weil ihnen das Blinken der Öl-Kontrolleuchte nicht behagt möchten sie lieber das störende Lämpchen entfernen statt direkt die Ursache zu beheben und damit schwere Folgeschäden abzuwenden. Derartige Schäden werden dann immer mit Steuermitteln behoben.

Doch was ist denn so falsch an Moody’s Erklärung? Sie sagen: »Institutioneller Anleger, wenn du dich in Irland (Portugal, Griechenland, …) engagieren willst, und wenn es nach dem Willen von Merkel/Schäuble geht, kann es sein, daß du dich an dem Schuldenabbau des Landes beteiligen mußt. Ob dies jedoch geschehen wird ist unklar, solange die EU in diesem Punkt zerstritten ist.« Was, so die Frage, ist hieran unklar oder bietet Anlaß zur Aufregung?

Ein Teil der Zusatzverärgerung der Politiker beruht sicher auf der Selbsterkenntnis wieder einmal nicht zu Ende gedacht zu haben und damit selbst zum Teil des Problems geworden zu sein. Der EU-Bürger sollte allerdings erwarten können, daß zumindest innerhalb der EZB qualifizierte Mitarbeiter tätig sind, die einigermaßen zielsicher die Konsequenzen des Handelns voraussagen können. Aber auch dies scheint nicht der Fall zu sein. Eines ist jetzt gewiß, der Steuerzahler wird grundsätzlich immer beteiligt sein. Dabei ist es gleichgültig, ob die französische Lösung, also das Herausschleichen aus der Krise, angewendet wird oder der harte Schnitt, auch verniedlichend als haircut bezeichnet. Möglicherweise könnte auch die deutsche Lösung, also die Beteiligung des privaten Sektors an den Schulden, einer allgemeinverträglichen Stabilisierung der Märkte dienen.

Vieles bleibt unklar, eines jedoch nicht. Der in der EU formulierte Wunsch nach einer eigenen EU-Ratingagentur, die den Moody’s, Standard & Poor’s, Fitches und Co. Paroli bieten soll, kann nur bedeuten, daß hier Gefälligkeitsgutachten produziert werden sollen. Unwissenheit und Intransparenz herrscht innerhalb der EU aber schon zur Genüge. Der Anleger kann sich nur starke, unabhängige Ratingagenturen wünschen, die in Wahrheit und Klarheit die Märkte zeitnah und zielsicher beurteilen. Den EU-Politikern ist zu wünschen, daß sie ihre Beratungsresistenz ablegen und verstärkt den von ihnen oftmals als Wirtschaftstheoretikern belächelten Wirtschaftsexperten zuhören und lernen.
rh2011-07-003

FDP-Interessen über Gemeinwohl

FDP-Interessen über GemeinwohlDie FDP war bisher bekannt als die Partei der Besserverdienenden. Ihr Marketing vergangener Tage muß gut gewesen sein, denn das wirkt bis heute nach. Nun setzt sie sich plötzlich für das Wohl der Geringverdiener ein, indem sie Steuern und Abgaben senken will, und keiner versteht das. Man darf Herrn Dr. med. Rösler seine fehlende Wirtschaftskompetenz nicht vorwerfen – sieben Monate Wirtschaft in Niedersachsen zählen nicht allzuviel – aber es wäre wünschenswert, wenn er auf die Vielzahl seiner Kritiker hören würde. In Aufschwung- oder Hochphasen sollten Regierungen sparen oder Schulden tilgen und die Sozialkassen füllen. In Zeiten stetiger Neuverschuldung und großer Unwägbarkeiten (EU-Schuldenländer und Energiewende) wären Steuersenkungen geradezu fahrlässig. Noch vor wenigen Monaten, knickte er als Gesundheitsminister vor der Pharmaindustrie und den Krankenkassen ein und erhöhte er die Beiträge zur Krankenkasse besonders nachteilig für die Arbeitnehmerseite. Jetzt will er sie wieder senken. Es bleibt abzuwarten, welche Leistungen er dafür streichen wird. Ein Minister sollte Schaden vom Volk abwenden. Hier aber stellt ein Minister und Parteivorsitzender die Interessen seiner Partei über das Volksinteresse. Das perfide daran ist, daß er sich dabei des sakrosankten Themas Steuern- und Abgabensenkung bedient. Niemand kann in normalen Zeiten dagegen sein. Aber gerade die haben wir nicht und nicht jeder erkennt das. Der Steuerzahler soll der FDP in einem vorgezogenen Wahlkampf mit Steuermitteln aus dem Tief heraus helfen. Er soll später das kreditfinanzierte Wahlgeschenk mit Zins und Tilgung über höhere Steuern zurückbezahlen und er soll Leistungskürzungen, die mit den Abgabensenkungen einhergehen, aus eigener Tasche bezahlen. Es bleibt zu hoffen, daß am Ende der gesunde Menschenverstand siegen wird.
rh2011-07-002

Professor aus Heidelberg

Professor aus HeidelbergDafür, daß das deutsche Steuerrecht das komplizierteste und intransparenteste der Welt sein soll, wurde zu dessen Vereinfachung bisher noch nicht allzuviel unternommen. Zwar erklären unsere Politiker schon seit Jahren, daß Anstrengungen zur Vereinfachung des Steuersystems erfolgen sollen, aber meist endete dies nur mit einem Dreh an der Steuerschraube und der Einführung weiterer Steuergesetze. Das Bedürfnis nach immer mehr Gesetzen beruht auf unserem besonderen Rechtsempfinden. Mehr noch als die Herstellung von Einzelgerechtigkeit wünscht man sich die Beseitigung von Einzelunrecht.

Im deutschen Steuersystem haben wir es nicht nur mit zwei Interessengruppen zu tun, also dem Staat und dem Steuerzahler, sondern mit vier Gruppen:

  • Zunächst die zahlenmäßig größte Gruppe. Das sind die sogenannten Normalverdiener und die, deren Einkommen gegenwärtig nicht versteuert wird. Sie erwarten ein verständliches und gerechtes Steuersystem mit niedrigen Steuersätzen.
  • Die zweite Gruppe wird gebildet von den wirklich vermögenden Privatpersonen und den Unternehmen. Sie erzeugen als vergleichsweise kleine Gruppe das größte Steueraufkommen. Ihr Interesse an einer Vereinfachung des Steuersystems ist eher gering, da sie sich ohnehin ihrer Steuerberater und Wirtschaftsprüfer bedienen. Niedrige Steuersätze hingegen stehen auch bei ihnen ganz oben auf der Wunschliste.
  • Die Steuerberater/Wirtschaftsprüfer haben naturgemäß kein Interesse an einem einfachen, wohl aber an einem einfacheren Steuersystem. Der Personalaufwand und das Risiko für Falschberatung sind hoch. Steuergerechtigkeit stellt für sie keine Normgröße dar sondern ist Teil des Gestaltungsspielraums. Dies, gepaart mit hohen Steuersätzen, sichert ihre Zukunft.
  • Neben den Lippenbekenntnissen Steuergerechtigkeit und –vereinfachung wünschen sich Staat und Politik als vierte Gruppe vor allem Ruhe und Stabilität in diesem Segment. Es ist risikofreier dem Wähler eine weitere Steuersenkung zu versprechen als das Messer an ein System anzusetzen, von dem man nicht mehr genau weiß, wie es eigentlich funktioniert.

Nun ist er zurück, der Steuerreformer Dr. Kirchhof, der von dem ehemaligen Bundeskanzler Schröder nur verächtlich als Professor aus Heidelberg betitelt wurde. Dynamischer und zuversichtlicher als zuvor tritt er in gleicher Sache erneut an, allerdings ohne dem Streben nach einem politischen Amt. Woher er die Zuversicht nimmt, daß sein Konzept heute auf fruchtbareren Boden fällt, ist unklar. Er sollte gelernt haben, daß die Einführung eines neuen Steuerkonzepts dem Bohren sehr dicker Bretter gleichkommt. Dies tut man nicht, wie in 2005 geschehen, im Rahmen einer Illner-Will-Plasberg Show, zumindest nicht erfolgreich. Auch für die Einführung eines solchen Steuerkonzepts braucht man ein Konzept und Medienkompetenz. Vielleicht sollte sich Herr Dr. Kirchhof einen Medianberater zur Seite nehmen, um überhaupt in die Erfolgsspur zu kommen.

Ob der Zeitpunkt für die Einführung seines neuen Konzepts heute günstiger als vor sechs Jahren ist, darf bezweifelt werden. Unsere Politiker haben nach der Weltwirtschaftskrise, der Bankenkrise, der Atomkrise und der Griechenlandkrise die Hosen immer noch gestrichen voll. Zweifel, ob der Atomausstieg wirklich gelingen wird, bleiben bestehen. Und wenn sich die politische Führung noch nicht einmal die Auswirkungen eines Bankrotts Griechenlands vorstellen kann, wie soll sie dann die Erfolgs- und Risikofaktoren eines kompletten Umbaus unseres Steuersystems bewerten können?

Sollte das Konzept von Herrn Dr. Kirchhof wirklich tragfähig sein, verdiente es Unterstützung. Dazu müßte es auf breiter Front öffentlich gemacht und immer wieder anhand von Beispielen erläutert und diskutiert werden. Dies wäre ohne die massive Unterstützung durch das Internet nicht denkbar. Es wäre wichtig die erste und zahlenmäßig größte Gruppe zu gewinnen. Denn sie eint der Wunsch nach

  • einem einfachen und verständlichen Steuersystem in dem der Steuerpflichtige ohne fremde Hilfe in der Lage ist seine Einkünfte und Aufwendungen gegenüber dem Finanzamt zu deklarieren. Oder salopp ausgedrückt: Er möchte die Steuererklärung, die er jährlich unterschreibt, auch verstehen können.
  • einem gerechten Steuersystem, bei dem sich niemand mehr im Sumpf von Vorschriften und Ausnahmetatbeständen sein zu versteuerndes Einkommen schön rechnen lassen kann.
  • mehr Netto vom Brutto. Die Steuerpflichtigen wissen, daß hierfür nicht nur die Höhe des Steuersatzes allein, sondern auch die Summe der Abgaben entscheidend mitbestimmend ist.

Stuttgart 21 und der Atomausstieg haben zuletzt sehr eindrucksvoll gezeigt, daß die Macht auch bei komplexen Themen sehr wohl vom Volk ausgehen kann. Die Kompetenz in Sachfragen liegt nicht ausschließlich bei einigen Wenigen. Nur über diesen beharrlichen Weg kann man die Bedenkenträger und Besitzstandswahrer der Gruppen zwei, drei und vier aus ihren Komfortzonen herausholen und mitreißen.

Eine Irritation bleibt allerdings bestehen. Das neue Modell wird wiederum als Flat-Tax-System mit einem Steuersatz von 25 Prozent für alle vorgestellt. Das ist in zweierlei Hinsicht problematisch. Zum einen kann die absolute Höhe des Steuersatzes nicht Bestandteil eines Steuerkonzepts sein, sondern muß seinen variablen Teil darstellen. Höhe und Verlauf zukünftiger Steuersätze bilden sich allein aus gesellschaftlichen und fiskalischen Erfordernissen. Zweitens wurde bereits vor sechs Jahren deutlich, daß weite Teile aus Öffentlichkeit und Politik einen gemeinsamen Steuersatz für ungerecht halten. Besserverdienende sollten demnach auch mit einem höheren Steuersatz belegt werden können. Warum also beginnt der Relaunch des Steuerkonzepts von Herrn Dr. Krichhof mit dieser hohen Hürde? Sollte er am Ende doch nichts dazugelernt haben, der Herr Professor aus Heidelberg?
rh2011-07-001