Jeg er lidt i tvivl om hvad den bedste måde er at lave et unikt ordernummer for hver kunde. Har hørt at man kan få SQL til automatisk at generere et nummer, men er i tvivl hvordan - er det rigtigt?
Du kan i øvrigt også droppe enten id eller ordernumber, da begge unikt identificerer en ordre (da ordrenummeret ikke bør gå igen).
For at bestemme hvilket tal ordrenummeret skal starte fra, kan du bare indsætte en fiktiv ordre (via phpMyAdmin) med det ordrenummer som du ønsker den skal fortsætte fra.
hvis du vil generere selv din nummer vil jeg sige at dette format er nok unikt:
<date><time><user id><sequence> så vil blive noget i stil med 20110211112033IDUSER1001 | date time | id | sequence
her vil det være muligt for 1 enkelt bruger at lave 999 ordre pr minut ... så det er nok rigeligt :D .. ellers kam man lave sequence til at bare være løbende nr som bliver reset ved næste minut .. ... men ja ... det er op til en om man vil have en fast længde på ordrenummer ..
#4 Det var da temmelig overkill - fejler auto increment noget, da? Så kan 1 enkelt bruger lave alle de ordrer han vil på et minut... og hvorfor skulle en enkelt bruger lave 999 ordrer pr. minut?
Og sikke et ordrenummer at skulle læse op, hvis man kontakter virksomheden...
#3, man kan godt have flere primærenøgler. De er bare en "samlet" nøgler hvor de to som kombination skal være unikke.
det kan f.eks. bruges til en booking, hvor du laver "dato" og "person" som samlet primærnøgle, og derved godt kan have flere bookinger samme dag, og flere bookinger på samme person, men aldrig samme person samme dag.
Og med hensyn til nummerserie, så kan det også sættes op hvor en nummerserie starter, bare smid dette med når du opretter tabellen: AUTO_INCREMENT =1000;
#6 Det du taler er composite primary keys (hvilket du i øvrigt ikke får lov til at lave i phpMyAdmin uden at skrive sql'en selv). Det eneste du får ud af det er at du får en indeksering af det felt du ikke vælger til at AI på lige fod med UNIQUE felter.
det kan være det er "overkill" for at læse det op, men hvis den skal være unik og man skal kunne finde kunden ud af det på en enkel key så er det nok ikke så slemt.
og autoincrement fejler ikke noget, mente baer at der skulle også identificeres bruger ud af det nr...
og en bruger skal ikke lave 999 pr minut, det var bare et tal så man ikke kom i noget gris :D... så lave det til 100000000 eller 4 .. det er lige fedt...
#8 Er et fortløbende nummer ikke unikt? Misforstå mig ikke - jeg stiller blot spørgsmålstegn ved din logik; at det ene unikke nummer/streng skulle være bedre end det andet forekommer mig ulogisk.
#9 som jeg skrev, er et nummer unikt nok, men hvis han skulle have userID med i ordrenummer så skulle det sammensættes... og ja det kunne være <ID><nr> sammensætning .. bare man er klar over de bliver ikke lige lange ... men ellers er der ingen problem i det.
din revision vil bare brokke sig over at du ikke har en fortløbende nummerserie på dine ordrer - for det skal man have ifølge dansklovgivning. Du kan dog have flere nummerserier hvis det er forskellige typer ordrer...
jeg vidste ikke at der er lovgivning på området .. og en ulogisk en vil jeg mene... jeg kan også sige at der er i hverfald noget som ikke overholder dette ... her er f.eks nogle af mine ordre nummer fra en online butik:
#11 Jeg vil give #12 medhold - jeg tror ikke der er en lovgivning der dikterer dette. Jeg sidder - ligeledes - med en ordre, fra en dansk online shop, hvor ordrenummeret faktisk er noget så kryptisk som 11YMJGTSJX
Kapitel 4, Stk. 2. Registreringerne skal så vidt muligt foretages i den rækkefølge, som transaktionerne er foretaget i. Registreringerne skal henvise til de tilhørende bilag og indeholde oplysninger, der gør det muligt at bestemme den enkelte registrerings tidsmæssige placering i bogføringen.
Vil meget gerne have et svar fra dem der føler de vil have point så jeg kan få lukket tråden, og tildelt de rigtige points :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.