php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 27-07-2009, 19:41
b0db0x
 Registrierter Benutzer
Links : Onlinestatus : b0db0x ist offline
Registriert seit: Jun 2009
Beiträge: 41
b0db0x befindet sich auf einem aufstrebenden Ast
Standard SQL Klassen Personal und Adresse atomar sein

Hallöchen,

also ich habe zwei Klassen einmal Adresse und Personal. Ich würde es gern so haben, dass ich in Personal bestimmte Spalten aus der Klasse Adresse ausgeben kann. Des weitern sollen die beiden Klassen aber atomar sein, also wenn ich bespielsweise eine Zeile (PersonalNr) löschen. Soll die Adresse weiterhin bestehen bleiben. Kann mir jemand da weiter aus die Sprünge helfen ?

Wenn ich in Adresse die PersonalNr als Fremdschlüssel deklariere, wie verfällt sich das dann mit dem löschen etc...?

Vielen Dank schon mal im voraus...!!!
Mit Zitat antworten
  #2 (permalink)  
Alt 27-07-2009, 20:13
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

was für eine Datenbank ist das denn? MySQL?

Die Constraints kann man so definieren, dass bei Löschvorgängen (und auch bei Updates) das gewünschte Verhalten automatisch angewandt wird.

Code:
on delete set null
sorgt dafür, dass der verweisende Fremdschlüssel abhängiger Datensätze auf null gesetzt wird, wenn der Elterndatensatz gelöscht wird. Die Fremdschlüsselspalten mussen natürlich nullable sein.

Gruß,

Anja
Mit Zitat antworten
  #3 (permalink)  
Alt 27-07-2009, 20:19
b0db0x
 Registrierter Benutzer
Links : Onlinestatus : b0db0x ist offline
Registriert seit: Jun 2009
Beiträge: 41
b0db0x befindet sich auf einem aufstrebenden Ast
Standard

MySQL
Mit Zitat antworten
  #4 (permalink)  
Alt 27-07-2009, 20:41
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Ok, da ist das genau so, solange du nicht MyISAM nimmst. Und? Klappt's schon?
Mit Zitat antworten
  #5 (permalink)  
Alt 27-07-2009, 20:45
b0db0x
 Registrierter Benutzer
Links : Onlinestatus : b0db0x ist offline
Registriert seit: Jun 2009
Beiträge: 41
b0db0x befindet sich auf einem aufstrebenden Ast
Standard

Ich verstehe das nicht so ganz... Ich muss doch die beiden Tabellen vorher erstmal miteinander verknüpfen?

Wenn ich z.b
SELECT * FROM adresse,personal ;
ausführe, dann kann ich mir ja beide Tabellen anzeigen lassen... Aber ich muss doch erstmal AdresseNr mit PersonalNr verbinden ?
Mit Zitat antworten
  #6 (permalink)  
Alt 27-07-2009, 20:49
b0db0x
 Registrierter Benutzer
Links : Onlinestatus : b0db0x ist offline
Registriert seit: Jun 2009
Beiträge: 41
b0db0x befindet sich auf einem aufstrebenden Ast
Standard

Sprich ich muss in der Klasse Adresse die PersonalNr als Fremdschlüssel definieren ?
Mit Zitat antworten
  #7 (permalink)  
Alt 27-07-2009, 20:51
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Richtig. Und der Doppelpost war überflüssig ;-)
Mit Zitat antworten
  #8 (permalink)  
Alt 27-07-2009, 20:55
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Lies bitte am besten mal über Joins nach. Ein paar Grundlagen zum Thema Datenbanken brauchst du für dein Projekt schon. Auch der Begriff atomar, den du verwendet hast, passt aus meiner Sicht nicht. Ich habe es (hoffentlich richtigerweise) so verstanden, dass du die beiden Relationen (oder Tabllen, aber nicht Klassen) nicht komponierst, sondern aggregierst, was zum nächsten Thema führt, über das du dich informieren solltest: Beziehungstypen.

Gruß,

Anja
Mit Zitat antworten
  #9 (permalink)  
Alt 28-07-2009, 13:07
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von b0db0x Beitrag anzeigen
Wenn ich in Adresse die PersonalNr als Fremdschlüssel deklariere, wie verfällt sich das dann mit dem löschen etc...?
Du musst halt alle zugehörigen Adressen löschen, wenn du eine Person löschst. Wenn du das sauber programmierst, ist das eine zentrale Stelle im Programm, die du einmal schreibst und nie wieder anfassen musst. Oder du verwendest ein Framework, dass das für dich erledigt.
Mit Zitat antworten
  #10 (permalink)  
Alt 28-07-2009, 13:18
b0db0x
 Registrierter Benutzer
Links : Onlinestatus : b0db0x ist offline
Registriert seit: Jun 2009
Beiträge: 41
b0db0x befindet sich auf einem aufstrebenden Ast
Standard

Ok... der Begriff atomar passt vielleicht nicht so ganz !!! Aber das Thema mit den Beziehungen etc. ist für mich klar ! Es fehlt leider noch die Umsetzung mit PHP und SQL...

Mit dem löschen habe ich es jetzt mit ON DELETE SET NULL gemacht, da wenn der Primärschlüssel gelöscht wird der Datensatz weiterhin bestehen soll.

Ist es mit Php möglich mehrere Anweisungen mit mysql_db_query() auszuführen ? Hab gelesen, dass es nicht funktioniert?
Mit Zitat antworten
  #11 (permalink)  
Alt 28-07-2009, 13:22
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von b0db0x Beitrag anzeigen
Ist es mit Php möglich mehrere Anweisungen mit mysql_db_query() auszuführen ? Hab gelesen, dass es nicht funktioniert?
PHP: mysqli::multi_query - Manual

Im Normalfall braucht man aber keine Multiqueries. Ich programmier jetzt schon über zwei Jahre PHP und hab nich nie einen Multi-Query benötigt.
Mit Zitat antworten
  #12 (permalink)  
Alt 28-07-2009, 14:29
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Wenn du mit "mehrere Anweisungen" ein DELETE über mehrere Datensätze meinst, das geht. DELETE lässt isch fast genau so nutzen wie SELECT, du kannst also den gleichen JOIN zum Löschen nehmen, den du auch zum Abrufen der Adressen einer Person nimmst.

Gruß,

Anja
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
file_exists() und file_get_contents() atomar verwenden mnhg PHP Developer Forum 7 28-08-2007 21:20
personal-messages lundi Apps und PHP Script Gesuche 0 22-05-2005 14:10
Lücke in Kerio Personal Firewall wahsaga IT-Security 1 22-12-2003 02:39
Personal-Projekt imetrix Jobgesuche 13 23-06-2002 15:15
PHP und Personal Web Server Maegges PHP Developer Forum 3 08-08-2001 22:15

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:19 Uhr.