Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Mysql]Pomoc przy tworzeniu bazy
Forum PHP.pl > Forum > Bazy danych
nighttrain
Witam,

zamierzać stworzyć bazę za pomocą mysql i phpmyadmina.

Moja baza będzie zawierałą informacje na temat komputerów w firmie -jest ich około 46..
W każdej z tych tabel chcę przechowywać informację na temat posczególnych komputerów (nazwa sieciowa komputera, IP, MAC, Procesor, Dysk twardy, ilość ram oraz najwazniejsze to zainstalowane oprogramowanie + jego wersja)

Założyłem sobie, że będzie to wygladać w taki sposób, że będę miał tabelkę "Komputery" a w niej nazwy komputerow z numerem id i teraz, zrobic jakos powiazanie jeden do wielu do tabelki "specyfikacja", gdzie bede pod dany komputer przypisywal dane (np RAM, Procesor, adres MAC itp..). Jak powinno wygladac z lini kodu takie powiazanie- jesli ktos mógłby zarzucić kodem. Wiem, ze tabela "Komputera" bedzie 1 do wielu (Tabela specyfikacja). Najwiekszym problemem bylaby jednak kwestia z oprogramowaniem- chcialbym moc przypisac do danego komputera oprogramowanie z wersja np Microsoft office 2003, czy office 97 z poznijesza mozliwoscia zliczenia ile i jakie komputery maja takia i taka wersje..

Oto zalozenie
Kod
Tabela Komputery:                    

Id komputera                                                                                    
Nazwa komputera      


Tabela Specyfikacja danego komputera

Ilosc RAM
Procesor      
adres MAC
nazwa uzytkownika
.....
.....


Tabela Oprogramowanie z wersja

?Tu nie wiem jak to ma byc






z góry dziękuje za pomoc

serdecznie pozdrawiam
zend
Robisz tabele z dostępnym oprogramowaniem, jeżeli jeden komputer może mieć tylko jeden program robisz relacje jeden do wielu, jeśli chcesz wiązać kilka pakietów oprogramowania to robisz relację wiele do wielu, umożliwi Ci ona także trzymanie historii oprogramowania na danym komputerze. Tak samo możesz zrobić z innymi komponentami komputera, będzie to bardziej poprawny zapis. Złączenia tabel wyglądają tak. A co do oprogramowania, to możesz traktować nowe wersje jako nowe oprogramowanie, albo zrobić kolejną tabelkę z wersjami do danego oprogramowania. Pamiątaj także że złączenia działają tylko na InnoDb
nighttrain
Tak średnio to rozumiem, czy mógłbyś pokazać konkretnie w moim przypadku? Byłbym wdzięczny
zend
Rel_pc_software
pc_id => rel Pcs pc_id
software_id

Pcs
pc_id
ram_id

Ram
ram_id
size

Software
software_id
wersion_id
software_name

SoftwareVersions
sv_id
software_id
version
nighttrain
może jestem mało kumaty, ale po kolei może najpierw, żebym się nie zamieszał dwie pierwsze tabelki:

komputery i specyfikacja (jeden do wielu w tym przypadku?)

Nie wiem, czy dobrze zrobiłem, proszę sprawdz:

Kod
CREATE TABLE `komputery` (
  `id` int NOT NULL auto_increment,
  `nazwa` varchar(25) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB;


CREATE TABLE `specyfikacja` (
  `id` int NOT NULL auto_increment,
  `mac_adress` varchar(30),
  `adres_ip` varchar(30),
  `nazwa_usera` string,
  `ilosc_ram` varchar(30),
  `procesor` varchar(25),
  PRIMARY KEY  (`id`),
  KEY `_id` (`komputery_id`)
) ENGINE=InnoDB;
zend
Jak dla mnie te dwie tabelki to relacja jeden do jeden, czyli jeżeli nie masz jakichś innych przesłanek to je złącz razem.
Poza tym userów do osobnej tabelki, i nie nazwa_usera a id_usera skojarzone do tabelki z usersami do pola user_id. Zdefiniuj też relacje => widok tabeli => struktura => widok relacyjny. Klucze obce muszą być indeksami
nighttrain
hehe, tzn mam przeslanki bo dojdzie jeszcze tabelka z oprogramowaniem, ale nazwa_usera to w tym przypadku nazwa komputera-sieciowa o tak, moze moglbys mi zarzucic poprawione te moje dwie tabelki? Bylbym bardzo wdzieczny. Wtedy pewnie bym zrozumial.
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.