Citat:
Originally posted by Robert@Jul 23 2005, 14:19
I det projekt jag sitter på nu har man ca 137tabeller, 685sp's, och ett snitt på 15kolumner per tabell. Många av sp'arna genereras av ett verktyg som verkligen uppskattar att en kolumn kan visa vilken tabell den härör ifrån ELLER vilken tabell den pekar på. Att tex ha 137 tabeller där varje unik id-kolumn heter 'id' är inte skoj, speciellt inte när en tabell har en fk som ska peka mot en annan tabells id... då ska det synas vilken tabell den ska peka mot genom att läsa på kolumnnamnet.
|
Inte ska du behöva skriva en novell...
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 (
ID INT AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(50));
CREATE TABLE CustomerContact (
ID INT AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(50),
CustomerID INT NOT NULL /* References Customer.ID */);
SELECT Contact.ID, Customer.ID, Contact.Name, Customer.Name
FROM CustomerContact AS Contact, Customer AS Customer
WHERE Contact.CustomerID = Customer.ID;
För jag hoppas du är medveten om att kolumner som är FK inte behöver ha samma namn som PK kolumnen...