Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] czy zakłada się relacje w mysql?
Forum PHP.pl > Forum > Bazy danych > MySQL
herbatniczek
Witam, mam juz całą bazę, odwołuję się do niej zapytaniami sqlowymi i jakoś to wszystko działa.
Pracowałem też z oraclem, foxpro, accessem, sqlserverem i wszędzie można było zakładać relacje, tworzyć klucze obce i np. uzywać tego do automatycznego wyświetlania odpowiednich danych w formatkach. A jak to jest w MySQL? Da się tu zakładać relacje?

Posiadam Krasnala 2.7
SKŁAD SERWERA:
- Apache 1.3.31
- php 4.3.9 + SQLite
- php 5.0.2
- MySQL 3.23.58
- ActivePerl 5.6.1.628
- phpMyAdmin 2.6.2 pl2
- Zend Optimizer 2.0.3
- CesarFTP 0.99g
- WebAlizer 2.1
- Free SMTP Server
- SQLiteManager 1.0.1
SongoQ
No wsumie w MySQLu da sie zrobic relacje, tabele musza byc zalozone jako INNO DB.
Leezard
dokladnie z innodb mozna, a z tabelami innodb to roznie jest, niektorzy administratorzy ich nie lubia i wtedy caly pomysl sie sypie bo wtedy masz relacje na slowo honoru (tylko jezeli sam o nie zdbasz)
SongoQ
Nie lubia, bo domyslnie jest to wylaczone.
herbatniczek
a jak projektujecie, z relacjami czy bez? bo w sumie mam całą aplikację zaliczeniową sklepu internetowego i totalnie brak czasu na przerabianie tego, działa wszystko bez użycia relacji i kluczy obcych, ale na schemacie bd trzeba będzie te klucze obce niby pokazać, wynika to z samej istoty projektu - żeby ludzie co będa mi sprawdzac, się w tym połapali.

Co proponujecie? Przerabiać to na model z relacjami, czy zaostawić jak jest?
I czy stosowanie relacji jest powszechne w mysqlu - i dlaczego tak/nie
SongoQ
Wydaje mi sie ze w MySQLu malo osob stosuje, dlaczego??
- jak to dziala, szkoda sie bawic w takie cos, itd..........
Tak naprawde to trzeba poznac co to naprawde jest i do czego jest nam potrzebne. Np chcesz usunac jakis rekord, a tu blad nie mozna bo naruszach wiezy integralsnosci. Jak by tego nie bylo to bys nawet nie wiedzial ze cos poszlo nie tak.
basurman
racja - mało kto korzysta z tych możliwości;
podstawową przyczyną jest fakt, że o wiele
trudniej zaprojektować poprawnie bazę z więzami
integralności niż bez nich;
wśród moich znajomych pracujących na MySQL-u panuje
opinia, że i tak wszystko załatwiają przez php
i mało kto przykłada większą wagę do struktury bazy;
w pewnym sensie korzystanie z FOREIGN KEY jest
podwójnym zabezpieczaniem - zakładając zadbanie
o integralność bazy na poziomie skryptu;

osobiście korzystam z zalet klucza obcego;
dlaczego - po pierwsze tak mnie nauczono,
a poza tym mam pewność, że każdy rekord
w bazie zawiera 'poprawne' dane - jeżeli
zawiedzie skrypt php to i tak nie ma możliwości
na wstawienie błędnych danych;
a przede wszystkim MySQL to RDBMS
więc korzystajmy z zalet jakie nam oferuje;

moim zdaniem jeżeli nie będzie konieczna jakaś
poważna ingerencja w strukturę Twojej bazy
to pozmieniaj typ tabel i dorzuć klucze obce;
potrafisz, więc nie ma co główkować
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.