webForumDet fria alternativet

Kompabilitetsproblem

4 svar · 533 visningar · startad av Brimba

BrimbaMedlem sedan dec. 19992 966 inlägg
#1

Hej!

Ponera att jag har en sida där man kan beställa ett paket.
I det paketet skall man kunna ha ett antal olika produkter.
Dock skall det beroende av val av produkter endast gå att stoppa in speciellt utvalda produkter.

Det hela rör sig om ett datorpaket.

Om man exempelvis stoppar in ett moderkort avsett för AMD processor, skall man endast kunna välja AMD processorer när så är läge.

Därför måste jag på något sätt skapa en kompabilitetstabell i min databas.

Jag har funderat på diverse sätt och alla har varit totalt värdelösa, därför ber jag nu er om hjälp.

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=17" TARGET=_blank>Vilket namn är fräckast? (bire)
</A>Hur stort är världens lager av atombomber?
För övrigt bor jag endast ca 50 mil från Birpe, tyck synd om mig!

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Det beror lite på hur du lagrar dina komponenter? Ligger alla i en tabell så borde det bara vara att ha en tabell med två kolumner som innehåller id för de komponenter som är kompatibla. Om A och B är kompatibla så får man nog lagra både A,B och B,A i den tabellen. Som sagt, berätta lite mer om nuvarande datamodell.

------------------
essentitia preter non sans multiplicandum

BrimbaMedlem sedan dec. 19992 966 inlägg
#3

Artiklarna lagras i en enda tabell som heter "tabArt"

Olika modeller jag har funderat på och varför de inte skulle vara genomförbara följer enligt nedan.

Göra ett extra fält i tabArt där jag anger idnummret kommaseparerat för varje produkt den skall vara kompatibel med. Samt ha ett universalnummer, exempelvis 0 för att den är kompatibel med allt.

Problemet här är att om vi lägger till en ny produkt i sortimentet så kommer man behöva uppdatera alla andra produkter, eftersom några kanske är och andra kanske inte är kompatibla med den nya produkten.

En annan tanke har varit att göra en ny tabell där jag har två fält. Där anger jag två artikelnummer med de som fungerar ihop. exempelvis

123 - 124
123 - 125

Problemet här igen är att det för det första skulle generera flera tusen poster, även om det hela bara rör sig om kanske 500 artiklar. Men det skulle som sagt dubbleras ganska fort och det är samma problem här, när det kommer en ny produkt måste man uppdatera alla produkter som skall vara kompatibla med den.

Jag vill ha ett system där man anger för den nya produkten vilka produkter den skall vara kompatibel med eller inte vara kompatibel med, därför har jag även funderat på om det skall finnas en "invert" ruta (ja/nej-ruta). Så man kan ange om den är kompatibel eller inte kompatibel med de produkter man anger.
Men samtidigt skall jag inte behöva ange på de gamla produkterna vilka produkter de är kompatibla med (mer än kanske en gång).

Jag vill alltså ha ett system som är acceptabelt att administrera, men som är kraftullt som jag vill ha det :)

För det hade varit ganska enkelt att genomför om det bara var att skilja AMD/Intel. Då skulle man kunna ha ja/nej ruta. Eller en dropdownmeny som hämtar värdet från en tabell.

Problemet är att det är otaligt andra saker som är också.

Vissa hårddiskar fungerar inte med vissa moderkort
PII
PIII
AMD Thunderbird
AMD Duron
PIV

redan där har vi 5 saker att tänka på och sedan tillkommer en mängd andra saker såsom att ett USB-modem inte är kompatibelt med ett moderkort som inte har USB-portar såvida man inte har valt en extern USB-port i sitt paket.

Mycket roligt problem :)

Ta fram nötknäckaren, så skall vi knäcka nötter :)

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=17" TARGET=_blank>Vilket namn är fräckast? (bire)
</A>Hur stort är världens lager av atombomber?
För övrigt bor jag endast ca 50 mil från Birpe, tyck synd om mig!

JymdisMedlem sedan mars 20015 637 inlägg
#4

Datorbutiken har ju en sån här funktion och dom har löst det genom att man allra först väljer vilken processor man ska ha, sen kommer ny sida upp så kommer alla alternativen upp.
Sen är det ju bara att bygga upp ett bra admin system runt det.

mvh
/Jymdis

------------------
-------------------
Andreas Lännerberg
Jag hör till dom som betalar mina räkningar med glädje, men dom vill hellre ha betalt i pengar.

hakangusMedlem sedan feb. 200144 inlägg
#5

Kolla in detta som jag hittade i min bra-att-ha-låda.

<BODY OnLoad="BuildContacts(0);">
<FORM Name="myForm">
Salesperson:
<SELECT Name="SalesNames" OnChange="BuildContacts(this.selectedIndex);">
      <OPTION Value="Jeff">Jeff
      <OPTION Value="Charles">Charles
      <OPTION Value="Rick">Rick
      <OPTION Value="Kevin">Kevin
</Select>
<BR><BR>
Contacts:
<!-- We want to define at least one option so that the select tag is created
       with the correct dimensions-->
<SELECT Name="SalesContacts">
      <OPTION Value="">--------
</Select>
</Form>
</Body>
</Html>

<SCRIPT Language="JavaScript"><!--

//Build arrays for each person's contacts
Contacts=new Array(4);
Contacts[0]=new Array(3);
Contacts[1]=new Array(2);
Contacts[2]=new Array(5);
Contacts[3]=new Array(4);

//Charles
Contacts[0][0]="Bill";
Contacts[0][1]="Bob";
Contacts[0][2]="Chuck";

//Jeff
Contacts[1][0]="Vern";
Contacts[1][1]="Matt";

//Rick
Contacts[2][0]="Diana";
Contacts[2][1]="Dave";
Contacts[2][2]="Todd";
Contacts[2][3]="Sherry";
Contacts[2][4]="Sharon";

//Kevin
Contacts[3][0]="Brian";
Contacts[3][1]="Trisha";
Contacts[3][2]="Greg";
Contacts[3][3]="Troy";

//Call this to build the Contact list for the specified Salesperson
function BuildContacts(num)
{
      //Select the first Contact
      document.myForm.SalesContacts.selectedIndex=0;
      
      //For every contact in the array for this person, add a new option
      for(ctr=0;ctr<Contacts[num].length;ctr++)
      {
       document.myForm.SalesContacts.options[ctr]=new Option(Contacts[num][ctr],Contacts[num][ctr]);
      }
      //Set the length of the select list
      document.myForm.SalesContacts.length=Contacts[num].length;
}
//--></Script>

[Redigerat av hakangus den 25 apr 2001]

Genererad på 386 ms · cache AV · v20260730165559-full.f96bc7eb