![]() |
Citat:
Ex: UTV 1 skapar FUNC1 som kräver en vy han kallar vyn UTV 2 skapar FUNC2 som kräver en vy han kallar Vyn UTV 2 råkar sedan längre ner i koden i FUNC2 av misstag skriva vyn Nackdelen med att utnyttja case sensitivity är att denna typ av misstag kan få oanade effekter. Case är dock (oavsett om koden är case sensitive eller inte) är dock att läsbarheten av koden kan bli bättre (myLongSpecialFunction vs mylongspecialfunction). Om koden tolkas case sensitive tvingar man utvecklarna att skriva namn på det mer läsbara sättet (vilket ju är bra), medans det får den nackdelen att man av misstag pga fel case använder fel variabel/tabell/objekt. Så egentligen är det en smaksak och visst tycker jag man skall använda sig av upper/lower case för att göra koden mer lättläst, men det betyder inte att man måste tvinga fram rätt case eftersom det kan leda till problem. Det beror på hur mkt man litar på de inblandade utvecklarna (inkl sig själv). |
Citat:
|
Citat:
Och ang användandet av verktyg så kan jag tänka mig att ett verktyg (eftersom den som gjorde verktyget var lat) genererar/kräver att kolumnnamn innehåller tabellnamn. Men eftersom det då handlar om autogenererad kod så är det ju inte mycket att göra åt. Dock så är ju inte det ett argument för att man skall använda den typen av konventioner generellt eftersom jag antar att verktyget du syftar på används av en specifik anledning och inte något som man generellt skulle dra nytta av (för om det är ett generellt verktyg skulle man ju vilja ha ett verktyg som var bättre skrivet och klarade av att hantera kolumnnamn oavsett vad de egentligen heter). Ang namnsättning på ID så har du helt missförstått vad jag (och andra i denna tråd) sagt. Vi pratar ID kolumnen i en tabell, inte eventuellt FK. Exempel på hur jag menar: Kod:
CREATE TABLE Customer ( |
Verktyget och ramverket är skrivet av oss, koden har gått sina turer till en person på MS som i sin tur har gett oss värdefull feedback från sina kollegor. Verktyget tillverkar även .net klasser för access till varje tabell, och då är det jäkligt bra för utvecklaren att, utan att behöva veta allt om databasmodellen, kunna skicka in ett visst id till en viss klass och få ut ett resultat. Vad ska den metoden döpas till? Få se nu, vi kanske ska ha fem metodnamn som alla heter "ID"... eller så kan vi vara smarta och bara ange tabellnamn + kolumnnamn och på så vis kunna ange en metod som automatiskt populerar sqlfrågan med korrekt referens till en kolumn. Vi vill ju gärna ha samma namn på metoderna (eller "propertys" beroende på hur man ser det) i datalagret som kolumnnamnen, annars så blir det ju att hålla reda på dubbelt så många namn, kanske tom behöver dokumentation över varje klass.
Nej, verktyget använder sig av en tabell med info över tabellerna i databasen, exempelvis tabellprefix, klassnamn i singular och plural etc (det skapas singel och multiklasser för varje tabell) Det här pratade vi om, quote "- fält döps till tabellnamn_fältnamn", inte specifikt pk'n |
Robert ett exempel skulle vara värdefullt för jag förstår fortfarande inte hur ditt ramverk är tänkt att användas?
Om man har en access klass per tabell borde det ju bara bli en enda metod som heter "ID" per klass, eller? Det låter på ditt resonemang som om du har en klass som används för att söka ut flera olika saker ur olika tabeller. Ett enkelt exempel behövs för att vi skall kunna föra diskussionen vidare. Jag kan bara gissa hur ni gjort ert ramverk och i alla fall jag kan kan komma på är bara "tabellnamn_kolumnnamn" en genväg och inget som skulle behövas. Du skrev själv tidigare: "då ska det synas vilken tabell den ska peka mot genom att läsa på kolumnnamnet" - något som ju framgår tydligt i mitt exempel utan att ha Customer_ID som kollumnnamn i Customer tabellen. |
Citat:
tabell 1: tblCustomers ------------------------------- nCusID sCusName dCusCreatedDate tabell 2: tblCustomerEmplyees ------------------------------- nCemID nCusID <--- koppling med samma namn som för fältet i tabell tblCustomer!!! sCemFirsname sCemLastname dCemEmployeeDate Och ang. klasserna, nja det genereras även klasser som kan hämta data beroende på fk, dvs den hämtar inte bara data ifrån samma tabell. Nu är jag inte någon databasexpert och behöver inte vara det heller med det fina sällskap jag sitter med här på jobbet, men jag litar på att dom har 100% koll på vad dom gör. Jag försökte bara förklara varför det kan vara en bra idé att döpa kolumnerna till annat än bara "id" för pk's. Kan någon berätta motsatsen, varför man INTE ska göra så, utan behålla sina "id" (bortsett från "det är jobbigt att skriva" och "jag har artros i fingerlederna" eller "mitt tangentbord saknar vissa tangenter") :) |
Citat:
Ni har uppenbarligen valt att gå en väg som jag inte tror att jag själv skulle valt någonsin. Men ni har valt en namnstandard som säger att nCusID ska vara namnet på Customer ID oavsett tabell. Fortsatt diskussion blir bara ett religionskrig. Bortsett ifrån sjukdomar i fingrarna så är det kortare "ID" för primärnyckeln just det att det blir tydligt vad som är en typisk primärnyckel. Om jag gör en select med en massa tabeller (med alias på tabellerna) så kanske det blir otydligt vilken som är PK och vilken som är FK om de har samma namn. men som sagt, detta kommer bli ett religionskrig om vi fortsätter. Jag tror dina databasexperter är tacksamma för ditt förtroende. Själv blir jag misstänksam mot folk som namger kolumner som i ditt exempel... <_< och hur gör ni om ni har en relationstabell? säg att ni vill ha en relation mellan två customers? tblCustomerRelation -------------------------- nCusID nCusID nRelTypeID Ert sätt att namnge kolumner utesluter ju denna typ av tabeller om jag förstår dig rätt. |
Alla tider är GMT +2. Klockan är nu 10:48. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson