2011-07-04 10 views
5

Zastanawiam się, jaki jest najlepszy sposób tworzenia i utrzymywania map baz danych i skryptów SQL. Wiem, że jestem bardziej fanem pisania skryptu SQL ręcznie na edytorze tekstów (plus projektowanie mapy, aby mieć obok mnie na kartce papieru), podczas gdy inni wolą używać oprogramowania do map baz danych (MySQL Workbench, Visual Studio ... niektóre wymienione w this post), aby automatycznie wygenerować skrypt.Jak tworzyć i aktualizować swoje skrypty SQL?

Oba rozwiązania mają zalety i wady. Widzę te zalety: skrypt

  • SQL ręcznie:
    1. Wiesz dokładnie co piszesz.
    2. Jesteś w stanie zachować czysty i czytelny kod SQL.
    3. Zapisując kod, będziesz mieć lepszy wgląd w swoją specyfikę bazy danych.
    4. Zapisanie kodu umożliwia korzystanie z wiedzy SQL.
  • Automatycznie wygenerowany skrypt z zaprojektowanej mapie:
    1. Zapisuje trochę czasu.
    2. Nawet bez znajomości języka SQL można wygenerować skrypt (nawet jeśli wymienię go jako przeciwwagę dla skryptu SQL ręcznie).
    3. Zapobiega literówek.

Co sądzisz, jaki sposób należy postępować?

Odpowiedz

7

Jeśli automatyzacja czegoś oszczędza czas i ludzki błąd, dlaczego byś tego nie zrobił? Chciałbym spróbować automatycznego generowania SQL jeżeli:

  1. ja już zaludnione testowej bazy danych i zbudowany schematu w organicznym mody poprzez pisanie i wykonywanie ad hoc non-SQL kwerendy, które ja nie śledził; i
  2. Jeśli baza danych była stosunkowo prosta i z małą ilością normalizacji

Innym rzadkim przypadkiem może być, jeśli miał ogromny wykaz zbiorów danych, dla którego schemat potrzebnych do ekstrakcji w postaci SQL .

Zaletą pisania ręcznie jest to, że zdajesz sobie sprawę z każdej części projektu i możesz lepiej egzekwować integralność danych (na przykład poprzez użycie kluczy obcych lub ograniczenie typów danych). Krótko mówiąc, zgodziłbym się z twoją listą profesjonalistów.

W przypadku skryptów aktualizacyjnych zdecydowanie wolę pisać je ręcznie, ponieważ zazwyczaj są one dość krótkie i dobrze jest, aby były bardziej czytelne dla osób, które je kończą.

Jedna wskazówka dla skryptów aktualizacyjnych to upewnienie się, że każdy skrypt dodaje wiersz podający numer wersji uaktualnienia w tabeli, która służy wyłącznie zapewnieniu poprawności wersji bazy danych.Coś jak:

INSERT INTO DB_VERSION (upgrade_time, version_from, version_to, comment) 
    VALUES ('2011-07-04T120320', '2.2.4', '2.3', 'add column x to table y.') 
+1

mi się pomysł db_version – Goran

+2

db_version (które również skorzystać) ma inny, bardziej ważne, zastosowanie. Jest to konieczne, aby zagwarantować prostą ścieżkę uaktualnienia dla bazy danych. Zwykle mam skrypty aktualizacyjne, które tylko wykonują aktualizację z wersji X do wersji Y i robię to, sprawdzając aktualną wersję. Jeśli potrzebuję aktualizacji z poprzednich wersji, muszę wykonać poprawną sekwencję skryptów aktualizacji. – Frazz

Powiązane problemy