Zamiast stosować przewidywalne, inkrementowane identyfikatory w tabelach bazy danych zaleca się często, ze względów bezpieczeństwa, używanie tzw. #uuid, czyli unikalnych identyfikatorów tekstowych. Taki klucz w tabeli maksymalnie niweluje skuteczność ataków ☠️ polegających na kolejnym odpytywaniu URL, zwiększając jedynie parametr ID o jeden.

Na przykładzie #php i #laravel zademonstruję sposób na użycie UUID.

A czy Ty używasz UUID w swoim projekcie?
michalkortas - Zamiast stosować przewidywalne, inkrementowane identyfikatory w tabela...

źródło: comment_1612454863KAux8tRtsBdojzAWuKtSXq.jpg

Pobierz
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Serghio: @Serghio: Mam doświadczenie w projekcie gdzie poprzednik zaczął stosować uuid oraz id (id był podstawowy)

uuid wypływało zawsze na zewnątrz, do jakiegoś get itd.
obowiązywała jednocześnie zasada aby id nigdy nie było widoczne nigdzie na froncie, id używaliśmy tylko do komunikacji pomiędzy wywołaniami na backendzie.
  • Odpowiedz
@Serghio: @szczesc_borze: ostatnio mi wystarczyła informacja ile zamówień tygodniowo posiada pewna firma gdzie numer zamówienia jest autoincrement, wystarczyło złożyć dwa zamówienia w przeciągu tygodnia i wiedziałem

ps. to może ulid? nie rozwala tak bazy przy insercie
  • Odpowiedz
Nie jestem typowym korpo-programistą 15k, ale zrobiłem w życiu parę projektów. Większość z nich było oparte na relacyjnych bazach danych głównie mysql.
Od kilku lat robię też projekty oparte na mongoDB i choc na początku zauroczyła mnie ich prostota to stwierdzam, że przy większych projektach relacyjna baza daje większą kontrolę a mongo prowadzi do chaosu (chyba że zostaną zaimplementowane relacje co chyba mija się z celem nierelacyjnych baz danych).

Ciekawi mnie wasza
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@brightit: tak jest, kiedy próbujesz używać noSQL jako zastępnika bazy SQL. Do normalnych case raczej używa się SQL, a NoSQL do np. zbierania nieregularnych danych, które następnie wymagają np. analizy. Takimi nieregularnymi danymi mogą być np. logi.
  • Odpowiedz
Koliedzy, jaką bazę byście użyli do zapisywania notowań giełdowych z aplikacji streamującej, a jakiej do przechowywanie portfela klienta?

W 1 przypadku będziemy mieli:
timestamp, kod instrumentu finansowego, kod waluty, cenę

W 2 przypadku:
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@automatykwformie: baza raczej nawet nie w pierdnie chyba że jest tego na prawdę dużo.
Jak dużo to widok indeksowany j/w albo wyliczanie tego do tabeli na boku przy użyciu trigerow create update delete
  • Odpowiedz
mam kilka calkiem sporych #bazydanych jakosci powietrza z jednego roku kalendarzowego i chcialbym zrobic analize zeby te dane porownac. potrafie troche w #powerbi troche w #python mniej w #R baza ma pomiary wykonywane co godzine w kilkuset roznych lokalizacjai w polsce. jakie fajne zestawienia mozna zrobic zeby jak najwiecej rzeczy wykazac? dopiero sie ucze wiec #naukaprogramowania
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@rosso_corsa: Zrób zmienność jakości w czasie dla danej lokalizacji, zobacz czy ludzie dzielą to czym palą na wsad dzienny (czystszy) i nocny (brudny). Narzuć na to też dane o temperaturze i siłę wiatru. Postaraj się przewidzieć na podstawie takich danych jaka będzie jakość jutro oraz co ma największy wpływ - godzina, temperatura, wiatr?
  • Odpowiedz
@programista5k2: Po pierwsze załóż bazę Configuration, która będzie przechowywać zmiany, logi, i wszelkie dane, które nie podlegają dosłownej integracji a są np z góry ustalone, zidentyfikowane. Następnie w tej bazie stwórz schematy typu log, data, dics itd itd. Nie pytaj się o nazwę tylko pomyśl jak miałaby wyglądać cała struktura tak aby Tobie to ułatwiło pracę.
  • Odpowiedz
Potrzebuję zrobić #hurtowniedanych w #sqlserver ale jako narzędzie do #etl służy mi #spark, a konkretnie #pyspark

Macie może jakieś dobre materiały albo przykładowe kody, żeby podejrzeć jakieś dobre praktyki?

Jak ogarnąć slow changing dimension? Metadane itp.?
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@inny_89: Z doświadczenia to całe zasilanie powinno się odbywać w dwóch krokach Source - Extract, Extract - Stage. Oczywiście mówię o hurtowni zasilanej raz na dobę nocną porą.

1. Source - Extract - truncate docelowych tabel i zasilenie ze źródła. Tak jest najszybciej. Nawet jak masz tabele do 100 mln rekordów. Z produkcji zasilamy dane tak szybko jak to jest możliwe.

2. Extract - Stage - zasilenie przyrostowe. I tu już można
  • Odpowiedz
#anonimowemirkowyznania
#sql #pomocy #porada
Cześć,
muszę napisać z anonima, żeby mnie nikt nie skojarzył.
Obecnie skończyłem inżyniera z mechaniki. Studia fajne, ale nie umiem nic ciekawego sobie znaleźć. Pracuję obecnie w firmie, zajmuję się specyfikacjami technicznymi urządzeń i kontaktem z klientem (zagranica). Robota niby całkiem okej, ale brak nowych wyzwań powoduje u mnie nudę.
Chciałbym się z czegoś przeszkolić, poszukać sobie innego zajęcia, które spowoduje, że znajdę
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@AnonimoweMirkoWyznania: Obie drogi jakie rozważasz mogą być potencjalnie tak samo nudne jak to co teraz robisz. Sam robie w bazadanych ale jakoś administrator/helpdesk i tu jest jeszcze jakaś rozrywka bo nigdy nie wiesz na co klient wpadnie.
W mechanice może warto abyś rozejrzał się za jakimś projektowaniem - znajomy pracował w Instytucie lotnictwa w centrum projektowym dla GE i co kilka mce wyjazdy albo Anglia albo RPA(mieli kontrakty na instalacje
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@rosso_corsa: jak Warehouse obsługuje ten sam typ bazy danych to można próbować bez narzędzi, ale jak masz różne to pisanie narzędzia na nowo jest bez sensu. Wybierz jakieś gotowe
  • Odpowiedz
Siema powie mi ktoś co robi tu źle że wywala mi blad "Foreign key constraint is incorrectly formed". Idproducenta ma byc kluczem obcym powiazanym z id z tabeli producenci

ALTER TABLE produkty
ADD FOREIGN KEY (id_producenta)
REFERENCES producenci(id);

#sql #bazydanych
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#sql #bazydanych #programowanie #postgresql
Próbuję wdrożyć pagination oparty na metodzie „keyset”, zamiast tradycyjnie „offset”.
Wszystko jest jasne dopóki strony idą do przodu np:
SELECT * FROM users WHERE id > 1500 ORDER BY ID LIMIT 10.
Ale co zrobić gdy użytkownik się cofa? Teoretycznie mogę odwrócić znak większości i zmienić DESC na ASC, ale wtedy otrzymuję wyniki w odwrotnej kolejności. Da się to
Alodnog - #sql #bazydanych #programowanie #postgresql 
Próbuję wdrożyć pagination opa...

źródło: comment_1611067419eLX7l6HWdpi5hdPRa7JQng.jpg

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Campell: W sensie jak pójść w tył? Ja tylko w tym moim WHERE zaznaczam granicę od której liczyć rekordy, więc jeśli chciałbym się cofnąć to mógłbym zrobić WHERE id < 1500 ORDER BY id ASC LIMIT 10. I to zadziała, zwróci mi 10 właściwych rekordów, ale w odwrotnej kolejności niż bym szedł do przodu
  • Odpowiedz
@Alodnog: Wybierz interesujące Cię rekordy ze strony w podzapytaniu i tam zrób asc/desc jak tam chcesz, a w nadrzędnym zapytaniu posortuj jeszcze raz po tym czym chcesz czyli po id. np.

select * from (
select SELECT * FROM users WHERE id < 1500 ORDER BY ID DESC LIMIT 10
) as pusr
order by pusr.id asc;
  • Odpowiedz
@ostrykuc666: hmm bo wydawalo mi sie ze kiedys wrzucalem na oś x dzien z hierarchii, wybieralem filtry na rok, miesiac, dzien i mi robilo wykres godzinowy na wykresie liniowym ale teraz patrze ze cos mi to nie dziala wiec zrobie tak jak mowisz, dzieki!
  • Odpowiedz
Mam setki GB do przeniesienia. Zakładam, że długie ścieżki i nazwy plików z niedozwolonymi znakami mogą stworzyć problemy.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@zlack: migracja 1 do 1 zapewne nie ma sensu. Zbuduj sobie funkcjonalność bibliotek ma Sharepoincie, Teams Grupa office 365 per dział / projekt i pliki wrzucasz tam
  • Odpowiedz