ZenekN
11.07.2014, 08:54:20
Cześć czy rozsądnym rozwiązaniem jest zastosowanie auto inkrementacji w bazie danych z użyciem czasu uniksowego ?
1404909434
Pyton_000
11.07.2014, 09:23:24
nie bo i po co tracić tak dużą przestrzeń numeryczną ?
Jaki w tym cel i sens?
Crozin
11.07.2014, 09:26:02
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
14.07.2014, 11:19:25
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
14.07.2014, 11:40:26
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
14.07.2014, 11:40:44
W teorii nie.
Timestamp jako ID to jest ZŁY pomysł.
ZenekN
14.07.2014, 12:11:15
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
14.07.2014, 12:16:41
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.