Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Baza danych dla prostej aplikacji - projekt
Forum PHP.pl > Forum > Bazy danych > MySQL
phpmack
Witam potrzebuje pomocy w zaprojektowaniu bazy
Aby nie zaciemniać uproszczę trochę sprawę - aplikacja internetowa będzie swego rodzaju interfejsem do oglądania danych wysyłanych przez zdalne urządzenia poprzez GPRS.
Czyli zakładamy konto w serwisie rejestrujemy swoje urządzenia GPRS i możemy podglądać raporty przysyłane przez te urządzenia. Muszę stworzyć bazę do tego systemu, jako że zmienianie i poprawianie bazy będzie kłopotliwe chciałbym aby była poprawnie zaprojektowana dlatego zdecydowałem się założyć ten temat.
założenia:
- każdy użytkownik będzie mógł posiadać dowolną ilość urządzeń
- urządzenia będą rozpoznawane poprzez IMEI przesyłany z każdym raportem z danymi

pomysł
dwie tabele: użytkownicy i raporty
tabela użytkownicy poza standardowymi polami związanymi z zakładaniem konta itd. będzie posiadała klucz obcy "IMEI" z tabeli raporty
tabela raporty składała by się z pola IMEI oraz treści raportu. Takie podejście od razu generuje wadę -użytkownik posiadający więcej niż jedno urządzenie był by powielany w bazie.
Jak to sensownie rozwiązać?
nospor
Tabela USER
Id
blabla

Tabele DEVICE
IMEI
ID_USER - id uzytkownika
blabla

Tabela REPORT
IMEI
blabla
phpmack
Cytat(nospor @ 14.07.2011, 13:39:23 ) *
Tabela USER
Id
blabla

Tabele DEVICE
IMEI
ID_USER - id uzytkownika
blabla

Tabela REPORT
IMEI
blabla


Mam jeszcze jedno pytanie raporty do tabeli "raporty" będą spływały ze wszystkich urządzeń, jeśli użytkownik będzie chciał obejrzeć swoje raporty będę je musiał wyszukiwać według nr IMEI czyli będzie to porównywanie 15 cyfrowej liczby oraz przedziału czasu określonego przez użytkownika czy to jest dobre/akceptowalne rozwiązanie? załóżmy że mam 100 urządzeń i powiedzmy po roku czasu 5 mln raportów czy przeszukiwanie tego nie będzie zbyt uciążliwe? a czy nie można by do każdego urządzenia tworzyć osobnej tabeli raporty?
nospor
Nie powinno być większego problemu. W końcu IMEI to klucz główny i będzie miał indeks.
No ale możesz to przeteścić, stworzyć losowych 5 mln rekordów.
Następnie dodaj jeszcze dla urządzenia normalne ID i dla reportu ID_DEVICE - znowu przeteść na 5 mln danych i będziesz miał odpowiedź smile.gif
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.