Nie sądzę, że blackhole ma jakieś zalety.
Napisanie kodu wyzwalającego do przenoszenia danych prawdopodobnie nie jest zauważalnie mniej pracochłonne niż napisanie kodu, który wstawi dane we właściwym miejscu.
Jak pisze Christian Oudard, nie zmniejsza to złożoności — po prostu przenosi go w miejsce, w którym naprawdę trudno jest go debugować.
Minusy:
„Skutki uboczne” są zwykle złym pomysłem w tworzeniu oprogramowania. Wyzwalacze są efektami ubocznymi – zamierzam zrobić jedną rzecz (wstawić dane do tabeli), a to faktycznie robi wiele innych rzeczy. Teraz, kiedy debuguję swój kod, muszę pamiętać o wszystkich skutkach ubocznych — a skutki uboczne same w sobie mogą mieć skutki uboczne.
większość oprogramowania poświęca znacznie więcej czasu na konserwację niż na rozwój. Wprowadzenie nowych programistów do zespołu i wyjaśnienie sztuczki z czarną dziurą prawdopodobnie zwiększy krzywą uczenia się - z znikomą korzyścią (moim zdaniem).
Ponieważ wyzwalacze są efektami ubocznymi, a jeśli nie jesteś ostrożny, stosunkowo łatwo jest wywołać ogromną kaskadę wyzwalaczy, zawsze starałem się projektować moje bazy danych bez polegania na wyzwalaczach; Tam, gdzie wyzwalacze są wyraźnie właściwą drogą, pozwalam tworzyć je tylko moim najbardziej doświadczonym programistom. Sztuczka z czarną dziurą sprawia, że wyzwalacze stają się normalnym, regularnym sposobem działania. To oczywiście osobisty punkt widzenia.