[MySQL] Grafische printout Database model

Pagina: 1
Acties:
  • 277 views sinds 30-01-2008
  • Reageer

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Ik ben op zoek naar "software" waarmee ik mijn database model netjes kan uitprinten, met relaties tussen indices e.d.

Nu heb ik wat lopen zoeken, maar het enige dat ik kon vinden was Visio Pro, waarmee ik dan met ODBC een link naar mysql moest leggen.

Weet iemand of er zoiets bestaat?

Ik blijf er iig vrij nuchter onder....


Verwijderd

Met een zichzelf respecterent flow-chart programmatje kan je dit soort dingen maken. Visio is bijvoorbeeld zo'n programma. Daarvoor hoef je niet per se database links aan te leggen. waarschijnlijk is dat alleen een handige 'decompile' optie.

Kijk maar eens op tucows.nl en zoek op flowchart. Misschien dat je daar iets van je gading vindt.

Verwijderd

Wil je echt iets moois, gebruik dan powerdesigner van sybase. Deze kan je datamodel leechen van je database, maakt er een grafische representatie van, kan er een conceptueel datamodel uit destilleren, enz. Schitterende report functie, waarbij je in 1 klap een compleet rapport over je datamodel er uit krijg, invoeren van business rules, eventueel koppeling met een objectmodel, enz.

http://www.sybase.com/pro...isemodeling/powerdesigner

//edit: een voorbeeldje uit een andere thread:


conceptueel

Afbeeldingslocatie: http://www.tweakers.net/ext/f/3797/full.jpg

fysiek

Afbeeldingslocatie: http://www.tweakers.net/ext/f/3798/full.jpg

hij genereerd het fysieke datamodel zelf, dwz. de tabel votes is automatisch aangemaakt omdat ie een many-to-many relatie ziet.

[ Voor 28% gewijzigd door Verwijderd op 12-04-2003 11:01 ]


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
ik heb een paar programma's van maui71 geprobeerd, maar geen van alle krijgen ze het voor elkaar de relaties tussen mijn tabellen aan te geven.

Die laten ze gewoon links liggen zo te zien.
Een aantal van mijn tabellen zijn MyIsam en andere InnoDB

Iemand een idee waarom dit zo is?

[ Voor 36% gewijzigd door maartenvdv737 op 17-04-2003 09:21 ]

Ik blijf er iig vrij nuchter onder....


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15:12

alienfruit

the alien you never expected

Probeer eens xCase heb hier nog nooit problemen mee gehad :)

Verwijderd

Probeer sybase eens ;)

maar zonder gekheid: je hebt twee velden in 2 tabellen zitten met dezelfde naam, te weten je identifier (ID). Volgens mij kan hij daar niet mee overweg..

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
hmm, dat vind ik nou juist weer de normaalste zaak van de wereld. Zo deel ik mijn db's altijd in. ID voor id van de row, en tabelID voor een verwijzing naar een ID van een andere tabel...

Ik blijf er iig vrij nuchter onder....


Verwijderd

Klopt, maar het is niet netjes om alle ID's in alle tabellen dezelfde naam te geven..

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Met xCase doet ie het ook niet!

Doe ik soms iets fout in mijn tabelopbouw?
Het idee van reverse engeneering is toch dat hij zelf de relaties gaat uitzoeken?
Die kan je toch nergens invoeren?

Ik blijf er iig vrij nuchter onder....


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15:12

alienfruit

the alien you never expected

Hmm. Volgens mij kun je in xCase ook het SQL Script importeren hoor; anders moet je ze zelf tekenen met de "Add Indentifying Relation" e.d. Heb zelf nooit echte problemen meegehad, misschien klopt het dat hij valt op je dubbele id veldnamen.

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Ik heb het nu geprobeerd met 2 tabellen, waarvan 1 een ID en de andere tabel een tab1ID en tab2ID heeft. Ik heb speciaal met FOREIGN KEYS aangegeven dat die tab1ID en tab2ID refereren naar gebruikers(id). Dat zie ik er nu ook bij staan in phpMyAdmin.

Dus: geen gelijke kolomnamen meer, en foreign keys. En nog steeds geen relatie-pijlen in xCase!

Dus ik maak handmatig die relatie aan in xCase, ik genereer het script, krijg ik dit terug:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DROP TABLE vrienden
;

CREATE TABLE  vrienden
(
  gebruikersID INT(6) NOT NULL DEFAULT 0,
  vriendID INT(6) NOT NULL DEFAULT 0
)
TYPE= InnoDB
;

CREATE INDEX gebruikersID ON vrienden (gebruikersID,vriendID)
;

CREATE INDEX vriendID ON vrienden (vriendID)
;


Dus ik heb dit uitgevoerd, nieuwe tabel aangemaakt. Opnieuw reverse engeneering gedaan op die tabellen. WEER GEEN RELATIES!!

[ Voor 43% gewijzigd door maartenvdv737 op 12-04-2003 22:17 ]

Ik blijf er iig vrij nuchter onder....


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Goed, ben alweer een stapje verder.

In phpMyAdmin 2.3.0+ kan je PMA opties instellen om zo foreign keys in te voeren.
Er zit ook 1 of andere PDF functie bij die zogenaamd database relaties weergeeft in een PDFje, maar dit is ontzettend onoverzichtelijk en je moet handmatig alle coordinaten van de veldjes in het pdfje instellen.....

xCase en case studio2 geven nog steeds geen relaties weer

[ Voor 29% gewijzigd door maartenvdv737 op 17-04-2003 09:21 ]

Ik blijf er iig vrij nuchter onder....


Verwijderd

als je jpgrahp gebruikt zit er ook een db drawer bij, welke een overzicht van een mysql database kan genereren in png formaat. je hebt hier dus wel GDlib / php en jpgraph voor nodig, je kunt ze allemaal wel vinden via google

de database drawer is gewoon een van de meegeleverde example php files. hij staat niet echt ergens als feature op de site.

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15:12

alienfruit

the alien you never expected

Gek hoor, toen ik laatst het datamodel van Vignette reverse engineerde in xCase, kreeg ik toch alle relaties te zien! Misschien afhankelijk van de gebruikte database? (Vignette was MSSQL2000). Nogmaals sorry.

Verwijderd

Er worden geen relaties weergegeven wanneer je een MySQL database importeert omdat MySQL geen foreign keys ondersteund. Zodra er in het te importeren SQL script zoiets van "FOREIGN KEY (custid) REFERENCES CUSTOMER" staat, wordt een relatie aangemaakt.

Onze "importer" ImportER MySQL importeert een MySQL database in DeZign for Databases. In ImportER MySQL zit een "smart relationship finder" ingebouwd welke probeert relaties te "zoeken" gebaseerd op de kolomnaam. Meer info op
http://www.datanamic.com/importermysql/index.html

gr
Rick

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Dat is toch wel raar dan : http://www.mysql.com/doc/en/ANSI_diff_Foreign_Keys.html

Hier staat toch echt dat vanaf 3.23.44 MySQL in innoDB foreign Keys ondersteund.
Ik heb ze in mijn database zitten, en het werkt echt hoor!!

Het enige wat niet gebeurd, is dat als ik een dump maak (met phpMyAdmin) dat hij dan die references uitwerkt...
In the near future we will extend the FOREIGN KEY implementation so that the information is stored in the table specification file and may be retrieved by mysqldump and ODBC. At a later stage we will implement foreign key constraints for MyISAM tables as well.
Het werkt dus wel, maar kan niet gedumpt worden.... Lekker is dat.

[ Voor 35% gewijzigd door maartenvdv737 op 13-04-2003 10:28 ]

Ik blijf er iig vrij nuchter onder....


Verwijderd

phpMyAdmin kan deze foreign keys niet zien. SQLyog (gratis) kan dit wel.

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Verwijderd schreef op 13 April 2003 @ 10:31:
phpMyAdmin kan deze foreign keys niet zien. SQLyog (gratis) kan dit wel.
PhpAdmin kan die foreign keys prima zien hoor. Vanaf versie 2.3.0 kan je een PMA tabel aanmaken waarin de relaties staan.

Hier nog een overzichtje met nadelen van Foreign Keys:
http://chronos.cs.msu.su/...ysql)Missing+Foreign+Keys

Overal staat trouwens dat die dump support SOON komt, maar nergens staat een datum...

BTW, als ik het goed begrijp zoekt jullie progje in de data naar relaties en werkt die uit. Dat betekend dus dat als ik een database opzet en ik wil voor andere mensen een printout maken van de structuur dat ik eerst de database moet gaan vullen?

[ Voor 24% gewijzigd door maartenvdv737 op 13-04-2003 10:39 ]

Ik blijf er iig vrij nuchter onder....


Verwijderd

de importer kijkt niet naar de data maar naar de kolomnamen.

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
dus om jullie progje te laten werken mag een kolomnaam geen woord bevatten dat ook een tabelnaam is als er geen FK is. Anders krijg je niet gerechtigde Foreign Keys.

[ Voor 8% gewijzigd door maartenvdv737 op 13-04-2003 11:06 ]

Ik blijf er iig vrij nuchter onder....

Pagina: 1