Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Projektowanie tabel dla plików i powiązań
Forum PHP.pl > Forum > Bazy danych
tikky
Buduję prosty system CRM.
Jego elementami są między innymi sekcje Firmy, Osoby, Zadania oraz Interesy
Mam tabele główne, wszystko działa.
Teraz chciałbym jednak dorobić upload plików i myślę, jak to powiązać dane w bazie.

Na pewno będzie tabela tab_pliki, która będzie mieć jakieś pola, np:
  • id_zalacznika
  • nazwa_zalacznika
  • data_dodania
  • id_osoby_dodającej

itp.

I teraz pytanie: czy w tej tabeli dodać pola id_firmy, id_osoby, id_zadania oraz id_interesu?
Taki sposób pozwoliłby na dość proste powiązanie jednego pliku.
Ale co jak zajdzie potrzeba przypisania tego samego pliku do więcej niż jednego zadania / osoby / firmy?

Może więc nie dawać w tab_pliki pól do powiązań a zrobić nową tabelę, typu:
tab_powiazania
--------------
id_powiazania
id_zalacznika
id_firmy
id_osoby
id_zadania
id_interesu


Druga sprawa to nazwy plików, zostawić oryginalne, czy dodawać przedrostek z datą?
Trzymać je w jednym folderze czy dzielić jakoś na strukturę, np. po dacie dodania
2014
- 01
- 02
Nie dobrze chyba będzie mieć kilkaset plików w jednym folderze.

A może jeszcze inne rozwiązanie?
Byłbym wdzięczny za radę od kogoś bardziej doświadczonego w projektowaniu.
Jakieś są Best Practicies?
Pyton_000
Jeżeli dodasz jakiś alert np, Uwaga, ten plik jest współdzielony .... to czemu nie. Może być jeden na xxx rzeczy.
Zastanów się do czego ma być przypisany załącznik. Bo jeżeli do jednego z typów podanych to hmm... Brzydkie rozwiązanie typu:

Kod
attachment_type
-----
type_id | name
------
1 | Osoba
2 | Firma


i tylko dodajesz typ do jakiejś tabelki n:n

Ad. katalogowania, nazwy możesz i md5 przelecieć,, abyś miał w BD zapisane coś tam. i trzymać np. po 4 znakaz z md5 w 2 pozioach czyli plik:
n0u8h087hf347f.rar w kat:
n0 -> u8 -> n0u8h087hf347f.rar
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.