View Issue Details

IDProjectCategoryView StatusLast Update
0000227GORM[Adventure PHP Framework] Neues Feature // New Featurepublic2016-03-08 16:25
ReporterGeneral CrimeAssigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
Status newResolutionopen 
Product Version[Adventure PHP Framework] 2.1 
Target VersionFixed in Version 
Summary0000227: Verbesserungen der Beziehungstabellen durch Einführung von Objekten mit 2 beziehungs IDs
DescriptionHallo wollte mal dieses Projekt in Erinnerung rufen:

Objekte die mit 2 oder gern auch mehr anderen Objekten verbunden sind und nie ohne diese existiert benötigt keine ID es würde reichen die IDs der anderen Objekte in diesem mit einzubinden.

Vor allem bei Tabellen die sehr viel unter Nutzung sind kann eine falsche Konfiguration des Typs der ID zum absturz führen dies kann mit dem Projekt verhindert werden und "BESSERE ÜBERSICHT" für solche Tabellen schaffen.
Additional InformationHier der Link zu dem Thema:
http://forum.adventure-php-framework.org/viewtopic.php?f=10&t=1467
Tagsconfiguration, database, gorm
Codereferenz: ([Datei]:[Zeile])

Activities

dingsda

2014-07-20 13:09

developer   ~0000463

Ich bin mir nicht sicher ob ich verstehe, was du meinst.

ich glaube du möchstest für 1:1 beziehungen oder 1:n beziehungen, dass dann die IDs der relationen direkt in der tabelle für das object drin sind. sodass man tabellen und joins sparen kann.

das fände ich selbst auch ganz sinnvoll und bin aktuell auch dabei etwas in der art umzusetzen, um zu sehen, ob/wie sich das machen lässt.

was ich in deinem beitrag nicht nicht verstehe:
- inwiefern macht es die ID des objektes selbst überflüssig?
- was meinst du mit "falscher konfiguration des Typs der ID"? imho sollte die id als primary key wohl immer ein integer-typ sein und für alle tabellen gleich, wenn man das gorm-management-tool nutzt.

dingsda

2014-07-20 17:37

developer   ~0000464

so sieht bei mir aktuell eine konfiguration aus

objects.ini

[User]
Username="varchar(50)"

[Status]
StatusType="varchar(50)"

relations.ini

[Status2User]
Type="ASSOCIATION"
Multiplicity="n:1"
SourceObject="User"
TargetObject="Status"

Durch die angabe der multiplizität weiß der gorm, welche art der beziehung es ist.

so wird dann intern als tabelle der relation nicht rel_status2user eingetragen sondern ent_user. und in der tabelle ent_user wird vom gorm-manager ein feld Target_Status angelegt.
Beim eintragen der beziehung macht der gorm kein insert sondern ein update in der entsprechenden spalte der user-tabelle.

Man kann wie gewohnt auch weitere Beziehung zum User angeben. und wenn man wieder als multiplizität 1:1 oder n:1 angibt, so wird auch die weitere beziehung in der user-tabelle abgebildet.

der zugriff auf die objekte und die verknüpfung über die API des gorm ist aber gleich geblieben. Es handelt sich ja dennoch um eine beziehung und die ID vom Status ist keine Objekt-eigenschaft vom User.

Ich weiß nicht, inwiefern es soetwas ist was du dir vorgestellt hast.

@all: wer vorschläge oder kritik dazu hat immer her damit

General Crime

2014-07-20 19:41

reporter   ~0000465

Ich beschreibe es mal steht eigentlich auch im Link:

Bsp:
1. Tabelle Resource
2. Tabelle Base

nun habe ich eine 3 Tabelle:
3. BaseResource
RessourceID
BaseID
Amount
Modi..
Creat..

um das nun optimal auf den GORM zu packen werden aus den 3 Tabelle 5 Tabellen
cmp_resource2baseresource
cmp_base2baseresource

die dritte BaseResource hat dann:
BaseResourceID
Amount
Modi..
Creat..

da ich sie aber nie alleine lade sondern immer in Verbindung der anderen ist es blödsinn eine eigene ID zu haben sonden einfach nur nen Unique über (BaseID und ResourceID)

und dann hab ich ne andere tabelle wo viel passiert da hab ich das problem gehabt das meine spalteneinstellung zu klein war und er plötzlich keine daten mehr geschrieben hat!

General Crime

2014-12-06 16:53

reporter   ~0000525

Hey wollte mal Fragen ob sich was dabei getan hat?
Oder soll ich mal schauen das ich ein Beispiel generieren kann!?

ChristianAchatz

2014-12-12 08:02

administrator   ~0000526

Ich denke das ist eine gute Idee.

General Crime

2016-03-08 09:55

reporter   ~0000681

Sitze grad bei der GFN und mache meinen Web-Developer, langersehntes Ziel.
Mal sehen was ich neues lerne da mir dieser ISSUE doch recht wichtig ist.

ChristianAchatz

2016-03-08 16:25

administrator   ~0000682

Danke für deine Rückmeldung! Ich warte auf dein Input!

Issue History

Date Modified Username Field Change
2014-07-12 22:53 General Crime New Issue
2014-07-13 01:05 General Crime Tag Attached: configuration
2014-07-13 01:05 General Crime Tag Attached: database
2014-07-13 01:05 General Crime Tag Attached: gorm
2014-07-20 13:09 dingsda Note Added: 0000463
2014-07-20 17:37 dingsda Note Added: 0000464
2014-07-20 19:41 General Crime Note Added: 0000465
2014-12-06 16:53 General Crime Note Added: 0000525
2014-12-12 08:02 ChristianAchatz Note Added: 0000526
2016-03-08 09:55 General Crime Note Added: 0000681
2016-03-08 16:25 ChristianAchatz Note Added: 0000682