Nazwenictwo w bazach danych ( i pewnie nie tylko 😛 )

  • Nazwenictwo w bazach danych ( i pewnie nie tylko 😛 )

    Posted by Magdalena Cebula on 2025-03-10 at 20:41

    Zanim zacznę się dzielić z wami wiedzą, to pomyśłam sobie, że zadam wam pytanie, które nurtuje mnie od lat 😀
    Otóż jak mamy jakieś bazy danych w firmach, to zdarza się, że kolumny są nazwane totalnie nieintuicyjnie. Mniej lub bardziej losowo, może kiedyś miało to sens dla kogoś kto to tworzył, ale ja przychodząc do firmy, muszę szukać ludzi którzy wiedzą co w ogóle w tych danych jest. Nie mówiąc o tym, że dokumentacji to nikt nie widział. I zastanawia mnie dlaczego? Jak? Po co?
    W moim idealnym świecie, tabele i kolumny czy inne struktury powinny mieć “sensowne” nazwy, odzwierciedlające to co z nich siedzi. I najlepiej opisane. Żebym ja nie musiała przeszukiwać tego przez X godzin, próbując się domyślić, co z czym mogę połączyć, co jest czym patrząc na wartości albo uda mi się w firmie znaleźć kogoś, kto wie co tam może siedzieć.

    Zastanawiam się jakie są wasze doświadczenia – czy po prostu ja tak trafiałam, czy może to nie tylko mój problem? Bo w sumie mój idealny świat, który sobie wyobrażałam na studiach legł w gruzach (no dobra, było też więcej powodów, ale o tym nie dziasiaj). 🙂

    Marek replied 3 weeks, 2 days ago 4 Members · 11 Replies
  • 11 Replies
  • Dawid Kaszuba

    Member
    2025-03-10 at 21:16
    28 Punkty

    To ja musze przyznać w takim razie, że chyba trafiłem dobrze, bo po kilku dniach zapoznawania z bazą można pisać zapytania prawie że w ciemno. Jest określony schemat jak mają wyglądać nazwy poszczególnych kolumn i wszyscy tego dość mocno przestrzegają. Dajmy na to taka tabela “ORDERS”, mamy: ORD_ID, ORD_TOTAL_AMOUNT, ORD.., ale też w tej tabeli masz np CUST_ID, tak że jeśli patrzysz na jakieś większe zapytanie to od razu widać skąd te dane się tu biorą, z jakich tabel itd

    • Magdalena Cebula

      Member
      2025-03-10 at 21:22
      55 Punkty

      Ufff 😀
      zazdro, ale to w sumie dobrze to usłyszeć 🙂

      • Magdalena Cebula

        Member
        2025-03-10 at 21:31
        55 Punkty

        jeszcze sobie pomyślałam o jednej rzeczy: a mianowicie pracowałam na danych z systemów/urządzeń przemysłowych, albo tak jak teraz na danych z “bebechów” systemów, więc nikt tam na co dzień nie patrzy ( prócz mojego zespołu 😛 ), więc może to jest powód, że nie ma logiki biznesowej – więc nie ma biznesu odpowiedzialnego za te dane używającego ich na codzień, więc nie ma kto o to zadbać od początku?

  • Wojtek Zdziebkowski

    Member
    2025-03-10 at 22:13
    273 Punkty

    Ja pracuję trochę z SAP’em, to jest dokładnie jak piszesz, a może i nawet gorzej. Jak już się uda wyciągnąć jakieś dane to kolumn jest zwykle raczej w dziesiątkach, większość o dziwnych nazwach, ale problemem są nie raz wartości, które też są jakimiś skrótami nie do rozszyfrowania. Potem palisz mnóstwo czasu, żeby rozszyfrować dane i móc z nimi pracować.

    • Magdalena Cebula

      Member
      2025-03-11 at 10:40
      55 Punkty

      sap na zawsze w moim serduszku – i staram się trzymać od niego z daleka 😀 największe zdziwienie w pierwszej pracy, jak chciałam zrozumieć wszystkie opcje które są dostępne i dowiedziałam sie że to jest nie potrzebne xd

  • Marek

    Organizer
    2025-03-11 at 10:06
    442 Punkty

    Ja mam tutaj ciekawą historię. Pracowałem kiedyś w najfajniejszym chyba projekcie jaki robiłem – to był PoC dla pewnej dużej organizacji rządowej;-). I miałem dostęp do ich bazy danych firm/podatników.

    Jak się okazało, wszystkie nazwy w bazie były robione po polsku. I uwaga, teraz najlepsze – to spowodowało, że część kodu także musiała być po polsku! Znaczy nie musiała, ale tak uznaliśmy, że będzie lepiej;-). Wszystko dla zachowania spójności. W efekcie wychodziły potworki w stylu (zmyślam, dla przykładu) “getAllSklepy()” :D. Niemniej miało to swój sens – wiadomo było do jakiej tabeli się odnosi, a całość kodu jednak była po angielsku.

    Dodam jeszcze na usprawiedliwienie, żeby nie było zaraz na nasz sektor rządowy, stworzenie tej bazy z polskimi znakami było jak najbardziej usprawiedliwione – nazwy tabel były często odpowiednikami bardzo konkretnych, formalnych nazw, określonych zarówno w prawie jak i w praktyce. Dlatego ich zamiana na angielski, żeby potem trzeba było się domyślać o co chodzi, mogła przynieść więcej problemów.

    Ot, taka historyjka, przypomniałaś mi 😀

    • Magdalena Cebula

      Member
      2025-03-11 at 10:43
      55 Punkty

      Na studiach prowadziliśmy w grupie razem z prowadzącym dość burzliwą dyskuję odnośnie stosowania polskich nazw w wymaganiach. No cóż, śmieszki z IsPies() == True ciągle żywe 😀

      Ja się spotkałam ze zmiennymi i dokumentacją po francusku we francuskim korpo, co bardziej bolało xd

      • Marek

        Organizer
        2025-03-11 at 10:45
        442 Punkty

        Ojej, to mój kolega z jednego z projektów pracował w jakiejś niemieckiej sieciówce, chyba Lidlu (nie jestem pewien). I tam ponoć… cały kod był po niemiecku. Tego się już nie da obronić :D.

        Generalnie ciężko obronić język niemiecki, ale w kodzie się nie da.

        • Wojtek Zdziebkowski

          Member
          2025-03-11 at 11:08
          273 Punkty

          Niemcy bardzo lubią miec rzeczy po niemiecku, nisetety….

  • Magdalena Cebula

    Member
    2025-03-11 at 11:48
    55 Punkty

    A tak serio, zastanawia mnie w którym momencie to się rozjżdża – mamy nowy projekt, projektujemy architekturę itd i już tutaj będą występować dziwne nazwy (jak w sap’ie?) Czy może zaczynamy z ładnym projektem, a potem lata używania / niezadbania o to, powodują że mamy dziwne tabele, w których nikt nie wie co jest, poza tą jedną osobą, a są niezbędne do działania całego systemu 😀
    Albo coś po środku 😛

    • Marek

      Organizer
      2025-03-12 at 10:01
      442 Punkty

      Sądzę że przyczyn jest kilka:

      1. “Dziwne nazwy” mogą nie być dziwne dla osób, które są domenowo zorientowane;-). Dlatego warto albo, żeby na początku fachowcy domenowi uwzględnili szersze spojrzenie, albo też, żeby ludzie techniczni przechodzili pewne, choćby podstawowe, przeszkolenie.
      2. Często jest tak, że na początku są standardy, ale one potem się zacierają. Trzeba coś wdrożyć szybko, ktoś niedokładnie zrobie review, i tak to leci…
      3. Czasami ludzie mają wywalone od początku :D.

      Często też myślimy w pewnym zawężonym horyzoncie. I wtedy coś co dla nas jest oczywiste, jasne, nie jest takie dla osób poza tym kontekstem.

Zaloguj się aby odpowiedzieć