Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/SQL] Inkrementacja z użyciem czasu uniksowego
Forum PHP.pl > Forum > PHP
ZenekN
Cześć czy rozsądnym rozwiązaniem jest zastosowanie auto inkrementacji w bazie danych z użyciem czasu uniksowego ?
  1. 1404909434
Pyton_000
nie bo i po co tracić tak dużą przestrzeń numeryczną ?
Jaki w tym cel i sens?
Crozin
1. Inkrementacja oznacza zwiększanie o jeden, czas nie będzie Ci się zwiększał o jeden.
2. Użycie czasu jest w ogóle bardzo słabym pomysłem, bo niczym nadzwyczajnym nie będzie jak nagle pojawi się kilka rekordów w tej samej sekundzie.
3. Jak nie chcesz "normalnej" inkrementacji, skorzystaj z unikalnego, "losowego" ciągu, chociażby w formie UUID.
ZenekN
ok mam jeszcze jedno pytanie czy jest prawdopodobne jeśli będę generował id jako czas uniksowy co pewien odstęp w czasie np. co 45 minut (godzina i data) to nie powtórzy mi się ten sam kod dwa razy ?
Turson
Nie powtórzy się w bazie, bo przed zapisem wywali błąd, że primary key nie może się powtarzać. Nie czaję sensu używania czasu jako id zamiast dodać osobną kolumnę do tego, jeżeli potrzebujesz faktycznie do czegoś ten czas
Pyton_000
W teorii nie.

Timestamp jako ID to jest ZŁY pomysł.
ZenekN
Chcę utworzyć koszyk produktów który będzie przechowywał ileś tam tysięcy produktów, a nie za bardzo umiem rozwiązać inkrementację w odstępie co więcej niż więcej niż jeden produkt który będzie odpowiadał numerowi zamówienia.

Nie przewidzę ile będzie produktów w zamówieniu dla nich chcę nadać to samo id z tym że nie umiem wystartować z kolejnym id dla następnego zamówienia.
trueblue
Zamówienia powinieneś przechowywać w jednej tabeli (autonumeracja id_zamowienie), natomiast pozycje zamówienia (produkty) w odrębnej. Powiązanie poprzez id_zamowienie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.