Faktycznie, właśnie skończyłem tworzenia skryptu PHP, który robi dokładnie to, ale mam nadzieję, że jest coś bardziej profesjonalnego tam ...
Demo mojego konwertera:
http://simpleddl.orgfree.com
Przykład wkład:
= ID id P AI
person
ID
mother_id -> person
father_id -> person
!FK mother_id, father_id -> family U:C, D:C
family
P female_id -> person
P male_id -> person
wyjściowa:
CREATE TABLE IF NOT EXISTS person (
id INT NOT NULL AUTO_INCREMENT,
mother_id INT NOT NULL,
father_id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE IF NOT EXISTS family (
female_id INT NOT NULL,
male_id INT NOT NULL,
PRIMARY KEY (female_id, male_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE person ADD FOREIGN KEY (mother_id) REFERENCES person(id);
ALTER TABLE person ADD FOREIGN KEY (father_id) REFERENCES person(id);
ALTER TABLE person ADD FOREIGN KEY (mother_id, father_id) REFERENCES family(female_id, male_id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE family ADD FOREIGN KEY (female_id) REFERENCES person(id);
ALTER TABLE family ADD FOREIGN KEY (male_id) REFERENCES person(id);
Istnieje kilka narzędzi, które mogą zrobić coś odwrotnego (jak obraz, nie wiem na skrót). Utwórz bazę danych (z instrukcjami SQL lub GUI), a narzędzie wykona rysunek tabel. Zobacz [to pytanie] (http://stackoverflow.com/questions/8895806/how-to-implement-polymorfical-associations-in-an-existing-database/9449031#9449031). Uważam, że OP wykorzystał Visio. Obraz w mojej odpowiedzi został zrobiony moim MySQL Workbench. –
Tak, istnieje wiele rozwiązań click'n'draw-your-database, ale tak mało (jeśli w ogóle?), Które działają bez użycia myszy. – biziclop
Większość używanych przeze mnie narzędzi potrafi odczytywać dobry stary zwykły SQL. Wiele narzędzi ma inżynierię odwrotną, która pobiera tablice tworzenia SQL z istniejących baz danych. I może narysować ładne diagramy. –