![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 7 Dołączył: 9.10.2007 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pewny pomysł do trzymania danych w bazie. Przykładowo standardowo w bazie miałbym 3 główne tabele: users, firms, products itd... Każda trzyma odpowiednie dane dla swojego przeznaczenia Jednak chciałbym uzyć trochę innej techniki. Otóż chciałbym stworzyć 4 tabele które będą trzymać wszystko . Będą to: components_types -> id | type components -> id | name | type_id components_fields -> id | field | type_id components_data -> component_id | field_id | value Wyjaśnienie components_types - są to rodzaje komponentów np user, firm, product components - tutaj są nasze komponenty, którymi mogą być firmy, użytkownicy, produkty itd... components_fields - to są kolumny (odpowiedniki pol w bazie danych dla każdego komponentu) np dla users: login, pass, city itd.. components_data - tutaj są wartości do wyżej wymienionych pól. Zamiast posiadać dla każdego modułu (firms, users, ...) osobne tabele w bazie. Tworze jedną strukturę. Gdy chce pobrać wszystkich użytkowników musze uzyć trochę php do otrzymania tablicy danych tak jakbym pobierał uch z typowej tabeli 'users'.
Otrzymuje takie dane:
Teraz musze pobrać jeszcze wszystkie pola z tabeli 'components_fields' dla komponentu typu user. Wtedy wiemy że field_id o id=1 to Miasto, o id=2 to telefon itd.. Po przemieleniu tego przez pętle w php możemy otrzymać normalną tablice z danymi które następnie możemy wyświetlić na stronie. Gdy chcemy posortować po mieście:
Co myslicie o tym pomyśle ? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że to idiotyzm. Podstawowe argumenty: nieczytelne, nie korzystasz z typów kolumn z bazy danych (wszystko przechowujesz w varcharze?), nie korzystasz z kluczów obcych, ograniczona możliwość optymalizacji.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 11:18 |