php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.03.2010, 16:08  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.037
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard Procedure, Subselect

Hallo, ich möchte innerhalb einer Procedure ein Eintrag erstellen, ich möchte meine Datenbankstruktur so halten, dass ich über eine "virtuelle Id" auf ein Objekt zugreifen kann, d.h. hibter einer Id können sich unterschiedliche Objekte verstecken (z.B. unterschiedliche Sprachen).

Beim Insert muss ich zunächst die nächst freie virtuelle id ermitteln - gibt es eine möglichkeit dies direkt in der Procedure zu bewerkstelligen? (letzte query)

Code:
BEGIN

	INSERT INTO pageelementcontent (headline, txt, alias) VALUES (inHeadline, inTxt, inAlias);
	INSERT INTO pageelement (pageelementcontent_id, virtual_id, lang) VALUES (LAST_INSERT_ID(), 1, 1);
	INSERT INTO page_pageelement (page_id, pageelement_id) VALUES (LAST_INSERT_ID(), MAX(page.virtual_id) + 1);

END
notyyy ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.03.2010, 16:09  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.069
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Fragwürdige Praxis.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 10.03.2010, 16:20  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.037
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

könntest du das genauer erläutern?

auf die daten wird quasi nur via API zugegriffen, mir ist wichtig, dass auf der anderen Schnittstelle zwar via ID's auf die Daten zugegriffen werden kann, jedoch dabei nicht auf die Sprache geachtet werden muss.

solltest du einen besseren vorschlag haben, würde ich mich freuen

// edit:

wichtig ist auch, dass dynamisch eine Sprache als Fallback dient

Geändert von notyyy (10.03.2010 um 16:42 Uhr).
notyyy ist offline   Mit Zitat antworten
Alt 10.03.2010, 17:11  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.037
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

ich habe das Problem nun gelöst, an anderen ansätzen wäre ich dennoch stark interessiert
notyyy ist offline   Mit Zitat antworten
Alt 10.03.2010, 17:15  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.069
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Prozeduren halte ich für schwer zu debuggen und wenig intuitiv, sprich von einem ungewöhnlichen Datenbankverhalten auf eine Prozedur als Ursache zu schließen ist gewöhnungsbedürftig.

Was genau hast du mit der Sprache vor, warum kannst du die nicht als Parameter definieren und in deiner Anwendung entsprechend reagieren? Für Sprachfallback habe ich bei uns eine Priorisierung (CASE) gebaut, nach der sortiert wird. Evtl. hilft dir auch COALESCE.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 10.03.2010, 17:32  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.037
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

habe ich neben prozeduren und MYSQL <-> PHP pingpong noch andere möglichkeiten? sind dann prozeduren nicht deutlich eleganter? das Sprachfallback habe ich ähnlich gelöst, sortierung nach der Sprache und einen Group auf die virtuelle id [...]
notyyy ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SHOW COLUMNS bei SubSelect Abfrage Plague Datenbanken 4 30.12.2009 13:45
Select-Problem / Subselect? oriolus Datenbanken 8 28.10.2009 12:11
[Erledigt] Daten aus Subselect verwenden matze_te Datenbanken 1 25.08.2009 13:12
Stored Procedure - Update Lager MySQL JeanRowan Datenbanken 8 19.05.2009 18:17
Stored Procedure rückgabe eines result set Horst79 Datenbanken 4 09.04.2009 08:56
[Erledigt] Stored Procedure Horst79 Datenbanken 4 06.04.2009 15:45
[Erledigt] stored procedure via phpMyAdmin drsoong Datenbanken 3 25.02.2009 18:08
stored procedure, prepared statement wird nicht ausgeführt Horst79 PHP Tipps 2008 9 28.09.2008 15:08
Variable aus Subselect in JOIN verwenden GSJLink Datenbanken 5 25.05.2008 11:36
Update und Subselect Simon9990 Datenbanken 3 13.11.2007 00:31
Stored Procedure - Invalid Format %d Rex Datenbanken 2 25.08.2006 10:13
[Erledigt] UPDATE und Subselect??? Datenbanken 2 31.01.2006 19:06
CLOB als Rückgabewerte aus Oracle Stored Procedure PHP-Fortgeschrittene 1 31.01.2006 11:43
Ein Subselect nötigerweise? tekknotrip Datenbanken 5 13.11.2005 12:42
[Erledigt] Problem mit Subselect Datenbanken 3 14.03.2005 08:13

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
prepared statement subselect, subselect mit mehreren rückgabewerten, subselect prepared statements php, procedure insert into with subselect, subselect in proceduren, subselect mysql procedure, mysql subselect priorisieren, sprachfallback, mysql subselect variable, http://www.php.de/datenbanken/65550-procedure-subselect.html, subselect, stored procedure subselect mysql, stored procedure against subselect, subselect variable coalesce, last_insert_id(); preparedstatement, select last_insert_id als subselect, php prepared statements subselect, preparedstatement subselect, subselect update, mysql subselect mit mehreren rückgabewerten

Alle Zeitangaben in WEZ +1. Es ist jetzt 03:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum