Låt säga att jag har 2 tabeller
Items:
ID Name
--------------
1 Ett
2 Två
3 Tre
4 Bla bla
etc.
Variable:
ItemID VariableID Value
--------------------------
1 1 12
1 2 1239
1 3 156
2 1 157
etc..
Det är alltså en mängd Items och ett antal Variabler till varje Item.
Lek med tanken att vi har 1 miljon items, och att varje item har 20 värden (variableID 1 - 20)
Select * from Items where
ID IN (Select ItemId where VariableID = 1 AND Value > 5) AND
ID IN (Select ItemId where VariableID = 2 AND Value < 5) AND
ID IN (Select ItemId where VariableID = 3 AND Value = 5) etc etc..
(Sökningen kommer oftast inte att involvera alla variabler, men det kan hända)
Som det är nu är Value en integer, men kan även bli en ny kolumn där sValue är en 64 teckens sträng
Finns det något smartare sätt att söka efter Items där med urval på Variables? Det jag är orolig för är att prestandan blir lidande när databasen växer (1 miljon rader, 10 miljoner rader, 100 miljoner rader?) och antal förfrågningar ökar.
Det bästa hade kanske varit att bara ha 1 stor tabell, med 1 kolumn för varje data variabel, men det blir tyvärr krångligt då antalet variabler per Item också kommer att växa.
Jag har inte bestämt mig för vilken databas jag skall köra, men tror att jag kommer börja med mysql eller MS-SQL.