2010-12-09 9 views
-1

Eingewilligt zu einem Webprojekt, im Grunde von Grund auf Redesign. Viele UI- und Navigationsprobleme machten dieses Redesign notwendig. Bei der Auswertung durfte das Projekt durch den vorhandenen Standortcode stapfen. Das lockte meine Zehen, sah viele Funktionen mit Namen wie getSubSubSubSubSubProductCategory und getSubCategorySubCategory. Ich habe das nur auf eine wirklich schlechte Benennung/Kodierung hingewiesen. Ich dachte nicht, dass die zugrundeliegende db könnte als f'd sein. Ich habe mich geirrt. Die gleichen scary ass Tabellennamen und obendrein gibt es 97 friggin Tabellen! Ich bin mir nicht einmal sicher, dass diese Website 97 Produkte verkauft.Soll ich nach den Hügeln rennen?

Würdest du jemals in Betracht ziehen, mit einer db wie dieser zu arbeiten? oder würdest du ehrlich sein und dem Klienten sagen, dass er ein echtes Chaos an seinen Händen hat?

+4

Wie hungrig bist du? –

+1

"Wenn Sie nicht Teil der Lösung sind, gibt es gutes Geld, um das Problem zu verlängern." - www.despair.com –

+1

Was hält Sie beide zu stoppen?(daran arbeiten und dem Kunden erzählen, dass er ein richtiges Durcheinander hat). Funktioniert die bestehende Implementierung? Gibt es eine Spezifikation, Testfälle oder zumindest einen informierten Kunden, der Ihnen sagen kann, was er tut und tun soll? Ich weiß nicht, warum du für den Hügel rennen musst, es sei denn, es ist ein Festpreis ... klingt wie eine gute Gelegenheit, einen guten Job zu machen, die Dinge zu verbessern und mit einem glücklichen Kunden zu gehen –

Antwort

0

UPDATE:

immer vertrauen Sie Ihrem Instinkt.

Ich hätte definitiv für die Berge laufen sollen.

0

Klingt interessant!

kann viel lernen aus solchen Aufgaben umarmen;)

1

97 Tabellen bedeutet nicht unbedingt ein schlechtes Design. Normalisierung bedeutet eine höhere Anzahl von Tabellen als ein denormalisiertes Design, also ist es nicht unbedingt schlecht.

Mit dem gesagt, kann ich nicht beurteilen, das Design basierend auf was Sie geschrieben haben.

Ich weiß nicht, ob die gleichen Leute, die die schlechte Benennung im Web und Mittelschicht erstellt die Datenbank erstellt haben. Die einzige Möglichkeit, herauszufinden, ob jemand die Datenbank intelligent gemacht hat, ist, sie zu betrachten. Überprüfen Sie die Benennung natürlich, aber schauen Sie auch auf den Grad der Normalisierung, richtige Tasten, gute Indizes usw.

Ob Sie den Gig übernehmen, hängt davon ab, wie viel Sie den Gig brauchen und ob Sie die Herausforderung wollen. Es könnte befriedigend sein, ein großes Durcheinander zu beheben: Du könntest der Typ werden, der den Sumpf leerte.

+0

stimme über die Anzahl der Tabellen und des Designs überein, aber wenn ich die Namen von talbe wie subSubProduct, subSubSubProduct, subSubSubSubProduct sehe, achte ich auf ein ziemlich schreckliches Design. Ganz zu schweigen von den Tabellen mit Feldern wie Qty_1 bis Qty_8. Angst mir ein bisschen – Ronn

+0

Das ist nicht normalisiert, dann. Es bricht die Regel für die erste Normalform. Das ist eine greifbare Sache, die Sie dem Kunden sagen können, anstatt "Ihre Datenbank saugt". – duffymo

1

Nein, sei ehrlich, du wirst es bitter später bereuen, wenn du es nicht tust, da du niemals eine anständige Lösung in einer vernünftigen Zeit produzieren wirst.

Denken Sie auch daran, dass Ihr Kunde wahrscheinlich weiß, dass sein System entsetzlich ist und respektiert, dass Sie ihm eine aufrichtige, professionelle Meinung geben.

Schließlich, vorausgesetzt, er hört zu und akzeptiert Ihre Analyse, sind Sie in einer guten Position, um wieder zu verhandeln.

1

Dies hängt vollständig von den Erwartungen Ihres Kunden ab.

Für mich spielt es keine Rolle, wie hungrig Sie sind - wenn der Kunde nicht über angemessene Erwartungen, wie viel Zeit/Arbeit es dauern wird, als weg zu gehen ..

Having said that Es ist deine Aufgabe, ihn über sein Chaos zu informieren. Nehmen Sie sich einen Tag Zeit, machen Sie eine oberflächliche Analyse und zeigen Sie dem Kunden die Sorgen, die Sie haben. Dann nimm dir die Zeit, die du erwartest, und verdopple sie (vielleicht verdreifachen). Geben Sie Ihrem Kunden diese Nummer und sehen Sie, wie er darauf reagiert.

Verwandte Themen