FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Japp, luddig rubrik men visste inte hur jag skulle beskriva det.
Jag har en litet motorcommunity sen några år tillbaka, inget seriöst, mest för att ha något att göra och testa lite olika saker. Sitter nu och planerar att göra ett marketplace där folk kan sälja allt i motorväg i kategorierna: bilar, husbilar, motorcyklar, mopeder, fyrhjulingar, lastbilar osv osv. Så jag satt och planerade databasens struktur ända tills det gick lite väl överstyr, varje kategori har ju någon form av extra information, tex miltal, årsmodell osv. Så nyss satt jag och kladdade databasstrukturen på ett papper: kolumnnamn (kolumntyp, längd, exempel) ... ... ad_modelyear (smallint, 4, etc "2012") ad_mileage (tinyint, 2, etc "30" som översätts till "1000-1499") ad_gearbox (tinyint, 2, etc "1" som är "Manuell") ad_fuel (tinyint, 2, etc "2" som är "Diesel") ad_length (tinyint, 2, etc "2" där siffran är i meter, unikt för husvagnar) ad_beds (tinyint, 2, etc "4" där siffran är antalet sängplatser, unikt för husvagnar) ad_boogie (tinyint, 2, etc "2" där siffran är 1 för ja, 2 för nej osv, unikt för husvagnar) osv osv ... ... Om jag skall hålla på så och göra en ny kolumn för varenda unik sak för extra informationen för en viss kategori så kommer det ju bli en jädra massa kolumner. Tex, ovan gjorde jag ett exempel på 7st kolumner, men egentligen är det bara 4 "unika" kolumner som behövs egentligen. Tex kategorin "Bilar" behöver bara ad_modelyear, ad_mileage, ad_gearbox, ad_fuel och då kommer ju ad_length och ad_beds, ad_boogie kolumnerna stå tomma när någon skapar en annons för bilar, vilket känns lite onödigt. Och för kategorin "Husvagnar" gäller samma sak som bara behöver ad_modelyear, ad_length, ad_beds, ad_boogie, då står ju ad_mileage, ad_gearbox och ad_fuel kolumnerna tomma. Blir ju sjukt i framtiden när man lägger till ännu fler kolumner för tex "Karosstyp" osv. Så jag funderar på om jag skall köra om kolumnerna så dom används till olika saker beroende på vilken kategori det gäller. Tex (ei = extra information) ad_ie1 (smallint, 4) ad_ie2 (tinyint, 2) ad_ie3 (tinyint, 2) ad_ie4 (tinyint, 2) Så i kategorin bilar används dom i denna ordningen: ad_modelyear ersätts med ad_ie1 ad_mileage ersätts med ad_ie2 ad_gearbox ersätts med ad_ie3 ad_fuel ersätts med ad_ie4 Och för kategorin husvagnar: ad_modelyear ersätts med ad_ie1 ad_length ersätts med ad_ie2 ad_beds ersätts med ad_ie3 ad_boogie ersätts med ad_ie4 Så nu är det totalt 4 kolumner för "Extra information" istället för 7st. Och om nu kategorin "Fyrhjuling" får 4 unika kolumner så skulle det på "gamla" sättet bli 11 kolumner, istället för 4. Har suttit i ett par timmar och försökt komma på någon nackdel med detta, men hittar bara positiva saker: Mindre databas, mindre antalet kolumner, lättare sök query (behöver inte lika många AND/OR) osv osv. Eller iofs, en nackdel är ju att man omedelbart vet vad ad_beds innebär, men är ju bara att skriva en liten dokumentation så man håller koll på vad ad_ieX används för för respektive kategori. Så ja, nämn gärna någon nackdel eller något annat förslag på hur ni minimerar antalet kolumner. Senast redigerad av JesperA den 2012-09-15 klockan 23:37 |
||
![]() |
![]() |
Ämnesverktyg | |
Visningsalternativ | |
|
|