[ASP.NET/C#]Hoe te werk gaan

Pagina: 1
Acties:

  • Razr
  • Registratie: September 2005
  • Niet online
Ik zou graag wat hulp hebben met het volgende:
Er is een tabel met allerlei artikelen. En een tabel met een aantal groepen waarin deze artikelen geplaatst kunnen worden.

De gebruiker kan zelf nieuwe groepen aanmaken en vervolgens op een andere pagina de producten aan deze groep toewijzen. Iedere groep heeft een uniek nummer bijv. 2000 of 3000. De producten hebben een volgnummer. Dit is opvolgend (begint overnieuw per groep) en de gebruiker bepaalt deze volgorde zelf.

Een product heeft dus een 4 cijferig nummer. Het eerste cijfer is van het nummer van de groep waar het product zich in bevind (zie de 2000/3000 hierboven) en de overige 3 cijfers moeten uniek zijn binnen deze groep. En ook opvolgend.

Je hebt dus bijv:

Groep 1
---- Artikel B met volgnummer 1001
---- Artikel G met volgnummer 1002
Groep 2
---- Artikel A met volgnummer 2001
---- Artikel W met volgnummer 2002

Nu kan een gebruiker zelf een artikel naar een andere groep zetten, en in een andere volgorde. Stel een gebruiker zet Artikel A naar Groep 1. En dan tussen de artikelen B en G in. Uiteindelijk moet het er dan als volgt uit komen te zien:

Groep 1
---- Artikel B met volgnummer 1001
---- Artikel A met volgnummer 1002
---- Artikel G met volgnummer 1003
Groep 2
---- Artikel W met volgnummer 2001

Hoe kan ik dit nu het beste uit gaan voeren? Ik dacht zelf om alles per groep in een array te lezen. Op volgorde van artikel naam ? En dan vervolgens elk artikel een nieuw volgnummer toewijzen, deze lijst vervolgens weer terug de db in lezen.

Maar dit lijkt me erg slecht voor de performance, en nogmaals dit is geen script request. Ik zou graag wat manieren hebben hoe ik dit het beste kan aanpakken.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:27

mulder

ik spuug op het trottoir

Als je zorgt dat je artikel de volgende velden heeft, heb je altijd een unieke artikel id, en kun je groepid + volgorde uniek binnen de groep houden. Als je het artikel verplaatst kun je van de nieuwe groep het hoogste volgnummer + 1 nemen.
Artikel
ArtikelID
GroepID
Volgorde

oogjes open, snaveltjes dicht


  • Razr
  • Registratie: September 2005
  • Niet online
Don Facundo schreef op maandag 05 februari 2007 @ 14:16:
Als je zorgt dat je artikel de volgende velden heeft, heb je altijd een unieke artikel id, en kun je groepid + volgorde uniek binnen de groep houden. Als je het artikel verplaatst kun je van de nieuwe groep het hoogste volgnummer + 1 nemen.
Artikel
ArtikelID
GroepID
Volgorde
Maar als een artikel dan bijv. als derde in een groep komt te staan. Dan gaat jouw manier met het hoogste nummer van de groep + 1 niet op.
Staat een artikel derde in een groep is het volg nummer namelijk ook 003. En er mogen ook geen gaten zitten in de optelling, dus geen 001, 002, 004 etc.

  • barfieldmv
  • Registratie: Maart 2004
  • Laatst online: 10-10 12:36
Razr schreef op maandag 05 februari 2007 @ 13:34:

Maar dit lijkt me erg slecht voor de performance, en nogmaals dit is geen script request. Ik zou graag wat manieren hebben hoe ik dit het beste kan aanpakken.
Waar verwacht je dan problemen met de performance, heb je honderd duizenden artikelen in je lijstje staan? Gaat het nu al te traag, is de pc waar het op werkt zo langzaam?

Zelf zou ik per hoofdgroep een 'sorted' array maken en dan vanaf de array index de nummers toekennen.

[ Voor 10% gewijzigd door barfieldmv op 05-02-2007 14:56 ]


  • 6K
  • Registratie: September 2002
  • Laatst online: 19-01 15:07

6K

is ook zo...

hoe ga je deze informatie gebruiken?

het lijkt me namelijk een ramp als de id's van je artikelen gaan wijzigen halverwege het proces.
Stel iemand besteld artikel 1001 en jij/de gebruiker wijzigt dat in 1003
dat vereist wat progageren en wat als ' de order ' al afgedrukt is en daar staat 1001 op?

ik zou ID en volgnummer sowieso scheiden en volgnummer wordt om bovengenoemde reden overbodig.
Je schrijft zelf dat je wil sorteren op naam, dus waarom dan ook nog opvolgende nummers?
en om te sorteren op naam, normaal als ook bij verplaatsen vereist niet dat je alles inleest, dat kan prima in een datagrid.sort of tijdens het ophalen van je data.

Als ze echt altijd een ander nummer krijgen naar gelang de volgorde is, dan zou ik dit dynamish toekennen na het ophalen. Heeft geen zin om dat op te slaan.

٩(͡๏̯͡๏)۶ ٩(●̮̮̃•̃)۶


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:27

mulder

ik spuug op het trottoir

Razr schreef op maandag 05 februari 2007 @ 14:50:
[...]

Maar als een artikel dan bijv. als derde in een groep komt te staan. Dan gaat jouw manier met het hoogste nummer van de groep + 1 niet op.
Staat een artikel derde in een groep is het volg nummer namelijk ook 003. En er mogen ook geen gaten zitten in de optelling, dus geen 001, 002, 004 etc.
Dan zul je eerst de groepsartikelen moeten 'hernummeren' nadat een groep is weggehaald. Dat gaat niet vanzelf.

oogjes open, snaveltjes dicht


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06 14:43
Razr schreef op maandag 05 februari 2007 @ 13:34:
Een product heeft dus een 4 cijferig nummer. Het eerste cijfer is van het nummer van de groep waar het product zich in bevind (zie de 2000/3000 hierboven) en de overige 3 cijfers moeten uniek zijn binnen deze groep. En ook opvolgend.
Uhm :? ...

Je wilt werken met artikelen en groepen.
Je zorgt gewoon dat je een aparte tabel hebt met alle mogelijke groepen die er bestaan.
Kolommen:
GroepID
GroepNaam

Dan kunnen er in een andere tabel Artikelen aangemaakt worden.
Kolommen:
ArtikelID
ArtikelNaam
GroepID
etc..

Wat je simpel doet is een artikel te kopplen aan een groep dmv de ID van de groep.
Het sorteren kan je op naam, id of welk ander veld wat je uiteindelijk hebt.

Wat je ook kan doen is een extra kolom hieraan toevoegen bijvoorbeeld
ArtikelNummer waar je 2000 of 3000 neer kan zetten en dan heb je de artikelnummers die je wilde zien.
Maar ik zou de ArtikelID niet gebruiken als nummer.

Maar kan ook zijn dat ik er naast zit :P

[ Voor 21% gewijzigd door Tijgertje84 op 05-02-2007 15:21 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • Razr
  • Registratie: September 2005
  • Niet online
6K schreef op maandag 05 februari 2007 @ 15:05:
hoe ga je deze informatie gebruiken?

het lijkt me namelijk een ramp als de id's van je artikelen gaan wijzigen halverwege het proces.
Stel iemand besteld artikel 1001 en jij/de gebruiker wijzigt dat in 1003
dat vereist wat progageren en wat als ' de order ' al afgedrukt is en daar staat 1001 op?

ik zou ID en volgnummer sowieso scheiden en volgnummer wordt om bovengenoemde reden overbodig.
Je schrijft zelf dat je wil sorteren op naam, dus waarom dan ook nog opvolgende nummers?
en om te sorteren op naam, normaal als ook bij verplaatsen vereist niet dat je alles inleest, dat kan prima in een datagrid.sort of tijdens het ophalen van je data.

Als ze echt altijd een ander nummer krijgen naar gelang de volgorde is, dan zou ik dit dynamish toekennen na het ophalen. Heeft geen zin om dat op te slaan.
Er zijn wat onduidelijkheden begrijp ik, een artikel heeft al een artikel nummer dit veranderd niet, alleen het volgnummer wel. Dit heeft te maken met een bestel volgorde die verschilt per klant. Vandaar dat zei deze zelf in de volgorde kunnen zetten die zij het makkelijkste vinden. Maar hier ga ik verder niet op in.

Per artikel heb je dus

Klantnummer - Artikelnummer - Omschrijving - Volgnummer

Dit word per artikel, per klant opgeslagen. Ik weet het, geen goed database ontwerp. Maar deze webapplicatie is onderdeel van een cirkel van meerdere applicaties dus daar kan niet aan veranderd worden. Ik hoop dat het zo wat duidelijker is :)

  • Razr
  • Registratie: September 2005
  • Niet online
Tijgertje84 schreef op maandag 05 februari 2007 @ 15:17:
[...]

Uhm :? ...

Je wilt werken met artikelen en groepen.
Je zorgt gewoon dat je een aparte tabel hebt met alle mogelijke groepen die er bestaan.
Gebruikers kunnen zelf groepen aanmaken, zelf een naam verzinnen etc. Dit is dus niet te doen

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
Dus je grootste probleem is eigenlijk het efficient ophogen van alle volgnummer id's die komen na het artikel wat je er ergens tussen zet.

Ik heb geen idee of je dit op de server zou kunnen uitvoeren, dus ik vrees dat je alles moet uitlezen en dan iets moet doen als

code:
1
2
3
4
5
6
7
8
Lees alle artikelen met dat eerste nummer

Terwijl i < 3 =< aantal artikelen
{
Volgnummer++
}

plaats dat verplaatste artikel op volgnummer 3

~ Mijn prog blog!


  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

therat10430 schreef op maandag 05 februari 2007 @ 16:28:

Ik heb geen idee of je dit op de server zou kunnen uitvoeren, dus ik vrees dat je alles moet uitlezen en dan iets moet doen als
http://msdn2.microsoft.com/en-us/library/ms186734.aspx :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1