Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [symfony] Dynamiczne tworzenie tabel/kolumn w bazie danych
Diwi
post 12.08.2010, 15:16:01
Post #1





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

Ostrzeżenie: (0%)
-----


Witam,

Czy w symfony można dynamicznie z poziomu kodu php (akcji w kontrolerze) dodawać nowe tabele/kolumny do tabel w bazie danych MySQL ?

Oczywiście zrobienie zwykłego zapytania SQL nie jest problemem, jednakże po zmodyfikowaniu pliku schema.yml i wywołaniu

Kod
php symfony doctrine:build --all


"Dynamicznie" stworzone tabele są usuwane.

Potrzebne jest mi to do dosyć dynamicznego systemu obsługi danych pochodzących z konfigurowalnych formularzy. Można w nim tworzyć nowe formularze, dodawać do nich elementy (inputy,textarea, pole z datą itp. itd.) a następnie dane przesłane z formularza trafiają do bazy danych do dynamicznie tworzonych tabel (każdy formularz ma swoją osobną tabelę do przechowywania danych). Gdybym mógł to zastosowałbym rozwiązanie z tabelą o kolumnach key i value, niestety muszę mieć możliwość łatwego sortowania i wyszukiwania po paru kryteriach jednocześnie co uniemożliwia zastosowanie takiego rozwiązania (no chyba ze pobierałbym wszystkie rekordy, mapował na tablicę i wyszukiwał/sortował w czystym php, ale to samo w sobie jest bez sensu)

Ten post edytował Diwi 12.08.2010, 15:17:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post 12.08.2010, 23:19:37
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat
ale to i tak wymagałoby tworzenia nowych kolumn dynamicznie, bo inaczej nie wyobrażam sobie takiej tabeli.
A nie wystarczy Ci ID pola plus wartość podana przez użytkownika?

Kod
+-----------------------------+
|        Formularze           |
+----+------------------------+
| id | nazwa                  |
+----+------------------------+
|  1 | Mój pierwszy formularz |
+----+------------------------+

+---------------------------------------+
|           Pola formularzy             |
+----+---------------+----------+-------+
| id | id formularza | typ      | nazwa |
+----+---------------+----------+-------+
|  1 |             1 | text     | Imię  |
|  2 |             1 | textarea | Adres |
|  4 |             1 | radio    | Płeć  |
+----+---------------+----------+-------+

+---------------------------------+
| Predefiniowane wartości dla pól |
+----+---------+------------------+
| id | id pola | wartość          |
+----+---------+------------------+
|  1 |       4 | Kobieta          |
|  2 |       4 | Mężczyzna        |
+----+---------+------------------+

+---------------------------------+
|          Odpowiedzi             |
+----+---------+------------------+
| id | id pola | wartość          |
+----+---------+------------------+
|  1 |       1 | Krzysiek         |
|  2 |       2 | Mój adres domowy |
|  3 |       4 | Mężczyzna        |
+----+---------+------------------+
Ostatnia tabela zawiera dane podane przez użytoniwka.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:29