Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Best Practice: Feldname für Datensatzbezeichner bzw. Primärindex

Frage Entwicklung Datenbanken

Mitglied: Digi-Quick

Digi-Quick (Level 1) - Jetzt verbinden

19.06.2013 um 12:53 Uhr, 1577 Aufrufe, 7 Kommentare

Moin in die Runde,

Ich bin gerade dabei eine Datenbank neu zu strukturieren und zu konsolidieren, um einiges an "Altlasten" rauszubekommen und diese für neue Anforderungen umzustellen und vorzubereiten

Dabei bin ich wiedereinmal darüber gestolpert, daß in der derzeitegen DB. nahezu alle Primärschlüssel den Feldnamen "Nr" oder "Auto_ID" haben (als autoincrement).

Kurze und knappe Frage:
Gibt es eigentlich sowas wie eine Empfehlung für die Benennung der Feldnamen von Datensatzbezeichnern / Primärinexen?
Ist es also Sinnvoller für jede Tabelle einen Eindeutigen Feldnamen zu verwenden, oder wird das i.d.R. eher nicht gemacht oder muss das jeder für sich selbst entscheiden, ohner das es dafür allegemeingültige Empfehlungen gibt.

ciao
Lothar




Mitglied: Dirmhirn
19.06.2013 um 14:36 Uhr
Hi!

naja das kommt drauf an...
Sprechende Namen haben immer den Vorteil, dass sie das programmieren erleichtern können. wenn du sowieso immer die Tabelle angibst - ist Tabelle.id wieder kürzer.

sg Dirm
Bitte warten ..
Mitglied: Digi-Quick
19.06.2013 um 14:44 Uhr
Also entscheiden nach eigenem "Gusto"!

Wobei ich zu eindeutigen "sprechenden" Namen tendiere.
Bitte warten ..
Mitglied: Dirmhirn
19.06.2013 um 14:51 Uhr
wichtig ist nur, dass es einheitlich ist!
Bitte warten ..
Mitglied: Biber
19.06.2013, aktualisiert um 15:46 Uhr
Moin Digi-Quick,

selbstverständlich sollten die Feldnamen eindeutig sein.
Auch eine Autoincrement-ID in einer Kunden-Tabelle (also Kunden.ID ist fachlich und auch im logischen Datenmodell eine andere Entität als eine Autoincrement-ID im Ticket-System (also Ticket.ID)

Welchen Wartungsvorteil sollte es denn haben, in jeder Tabelle ein PK-Feld mamens "ID" oder "Nr" zu haben?
Soll ich dann mal ein Selectstatement mit 18 verjointen und verunionten Tabellen konstruieren?

Außerdem wäre dann ja die weitergedachte Konsequenz, dass auch die Nicht-PK-Felder ein bisschen weniger phantasievoll gestaltet werden könnten.

Die könntest du auch ganz toll runtercopy&pasten als CHARFELD01, CHARFELD02, DATEFELD01, DATEFELD02 etc in jeder Tabelle.

Dann hast du beim Tabellen-Anlegen ganz viele Tippsekunden gespart, die du 100fach wieder draufzahlst, wenn du irgendwann mal die Tabellenstruktur dokumentieren oder offenlegen musst.

Kurz: ein PK KundenID heisst auch KundenID. und nicht ID.

Grüße
Biber
Bitte warten ..
Mitglied: Digi-Quick
19.06.2013 um 16:44 Uhr
Danke Biber, das ist auch meine Einschätzung
unser Webseitenprogrammierer sieht das anders, bei ihm heissen Variablen aber auch a,b, c,... x etc. - und niemand anderess ausser Ihm kann da jemals durchblicken - entsprechend Kommentiert ist das nämlich auch nicht.

Aber auch er hat schon die Ansage bekommen sprechende Variablennamen zu verwenden....
Mal schauen, ob wir mit einer Projektdauer von 1 Jahr auskommen.

Es ist natürlich in den letzten 12 Jahren da unheimlich viel gestrickt und gebastelt worden - es soll sozusagen bei Null neu aufgebaut werden und vernünftig strukturiert werden.

Wobei auch ich mir auf die Finger klopfen muss - ich hatte in der Vergangenheit einige male Variablen sozusagen Recycled und doppelt verwendet - macht das spätere Nachvollziehen nicht gerade leichter
ciao
Lothar
Bitte warten ..
Mitglied: Pjordorf
19.06.2013 um 20:25 Uhr
Hallo,

Zitat von Digi-Quick:
unser Webseitenprogrammierer
Externe Firma oder eigene Mitarbeiter?

sieht das anders
Gibt es bei euch kein Regelwerk was dies Betrifft an der siche jeder halten muss?

bei ihm heissen Variablen aber auch a,b, c,... x
Sehr klug ... und dämmlich. Dieser Programmierer beweisst doch das er sein Handwerk nicht gelernt hat. Und unfähige Leute proggramieren bei euch?

- und niemand anderess ausser Ihm kann da jemals durchblicken
Spätestens auf der zweitenQquellcode seite kann er ohne nachzuschauen es auch nicht mehr...

- entsprechend Kommentiert ist das nämlich auch nicht
Ist es bei euch keine Arbeitsanweisung?

Wenn das ganze aber von einem Externen gemcht wird, Pech, das ist dann sein ding. Ansonsten gehört soetwas geregelt und wer sich nicht dran hält kassiert notfalls auch eine Abmahnung oder schlimmeres. Wie die Namen aber geregelt sind bleibt eurer Phanstasie überlassen, wobei allerdings sprechende namen sinnvoll sind und alle diese dann verwenden.

Das einführen von Standards an den sich gerade Programmierer halten sollen kann schwieriger sein als den Quellcode für das ganze Projekt zu schreiben

es soll sozusagen bei Null neu aufgebaut werden
Sehr schwierig. Jeder der Entwickler hat doch seinen mist Programmierstil und "meine Variablen nennn sich immer so" seit Jahren in sein Kopf drin. Ausgetretene Pfade ...

und vernünftig strukturiert werden.
Ich habe schon erlebt das hier die ganzen Entwicklerausgetauscht wurden damit es eben funktioniert und neuer Quellcode zum Erfolg führen konnte...

Gruß,
Peter
Bitte warten ..
Mitglied: Digi-Quick
20.06.2013, aktualisiert um 01:19 Uhr
Der Webseitenprogrammierer ist tatsächlich ein externer - genau wie ich.
Die Firma um die es geht besteht aus dem Chef, und 5 Mitarbeitern.
Die Datenbank und die ursprüngliche Programmierung hat er noch als "Laie" selbst entwickelt - Access Datenbank und Envox zur Progarmmierung (Envox ist eigentlich 'ne schöne Sache, nur halt 'ne Insellösung). Für Envox hatte er eine Schulung mitgemacht.
Ende 2006 haben wir die Datenbank auf MySQl portiert - Benutzerfrontend mit Kundenformular läuft setdem weiterhin auf Access 2003.
Seitdem Programmiere ich einen grossteil der Änderungen in Envox (nach Einweisung in das Programm vom Chef). Mittlerweiel kann man fast sagen, daß gut 50 % der Progarmmierung auf meinem "Mist" gewachsen ist. ich habe auch schon einen sehr grossen Teil neu progranmmiert und etwas mehr Strukturiert.
Ich bin zwar kein gelernter Programmierer, habe aber ein recht grosses Verständnis dafür. PAPL etc. ist für mich kein Fremdwort.
Wobei die Envox IDE mit Programmieren im eigentlichen Sinne nur wenig zu tun hat. weil Ennvox mit Block-Modulen arbeitet - ein gewisse Ähnlichkeit zu PAPL kann man nicht von der Hand weisen.
Raus kommt ein Script, welches dann von der Envox Server-Engine abgearbeitet wird.
Aiuf jeden Fall haben wir zum Teil in gemeinsamer Arbeit in den letzten Jahren immer wieder Sachen dazuprogrammiert oder mussten Teile ändern etc.

Für zukünftige Planungen und mögliche Aufgabenstellungen, ist die derzeitige Struktur so ziemlich festgefahren, daher fiel jetzt die Entscheidung mit 'ne Neutrukturierunng zu beginnen, bevor wir weiter Stricken müssen und doch nicht alles umgesetzt bekommen, weil es strukturell einfach nicht geht.

Regekwerk, Arbeitsanweisung? was ist das?
Als Selfmade Programmierer und Chef fängt man einfach an *gfg*
Da sind wir jetzt aber dran, da auch der Chef eine gewisse Notwendigkeit dazu erkannt hat - das kam auf unsererm Meeting jedenfalls zur Sprache..

wir haben gerade vor 2 Wochen ein Meeting gehabt, zum Thema Neustrukturierung gehabt, weil durch gewachsene Struktur einfach zuviele Leichen in der Datenbank und der dazugehörigen Prorammirung sind. Wir sind an einem Punk angekommen, wo man nicht mehr Stricken kann.

Es wird auf jeden Fall Spannend.
Es ist auch geplant in diesem Zuge von Envox wegzugehen (bzw. Envox wird nur noch als Telefoniesystem arbeiten).
Das heisst für mich - Visual Basic lernen.bzw, rudimentäre Kenntnisse massiv aufbohren. - Man lernt nie aus
Im Moment bin ich mir allkerdings noch nicht so ganz schlüssig, ob C# oder C++ nicht sogar geeigneter wäre. ich muss mich da mal einlesen. Aber ein Schritt nach dem anderen - das Grauen kommt von alleine *gg*.
ciao
Lothar

P.S. Zur Uersprungsfrage: Wir haben uns darauf geeinigt bei einzelnen "Solo" Tabellen, wo das Feld nur die Funktion "eindeutiger Datensatzbezeichner" hat, der funktionell eigentlich gar nicht benötigt wird, bleiben die Feldnamen wie sie sind - also wie einfache Excel Tabellen funktionieren.
Bei verknüpften Tabellen, oder Tabellen wo der Datensatzbezeichner tatsächlich auch funktionell benötigt wird, bekommt das Feld einen eindeutigen Namen.
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Debian
Best Practice CheckMK Hosting (8)

Frage von ThePcSwagTogether zum Thema Debian ...

Windows Server
gelöst SQL Server Best Practice (13)

Frage von Cloudy zum Thema Windows Server ...

Monitoring
gelöst SNMP Monitoring eines LAN aus dem WAN - Best practice? (6)

Frage von chfran zum Thema Monitoring ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...