Kod
+---------------------+-------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------------+------+-----+---------+----------------+
| id | int(12) | NO | PRI | NULL | auto_increment |
| login | char(32) | NO | | NULL | |
| password | char(32) | NO | | NULL | |
| email | char(32) | YES | | NULL | |
+---------------------+-------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------------+------+-----+---------+----------------+
| id | int(12) | NO | PRI | NULL | auto_increment |
| login | char(32) | NO | | NULL | |
| password | char(32) | NO | | NULL | |
| email | char(32) | YES | | NULL | |
+---------------------+-------------------+------+-----+---------+----------------+
Teraz chciałbym ją dowolnie rozszerzać. Tak aby każdy użytkownik mógł mieć różne dodatkowe pola np.
Kod
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name | char(20) | YES | | NULL | |
| type | char(20) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name | char(20) | YES | | NULL | |
| type | char(20) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
Gdzie name to nazwa pola(np "gadugadu") a type to jego typ(np "int(10)")
Teraz w 3 tabeli trzymałbym wartości. I tu jest problem ponieważ nie mogę stworzyć tabeli nie wiedząc jakiego rodzaju pola będą się w niej znajdować. Wymyśliłem, że stworzę sobie 5 tabel (jedna wartości int, drugą wartości date, trzecią wartości char, czwartą wartości text i piątą wartości boolean). Dam ROW_FORMAT=DYNAMIC Aby zoptymalizować trochę ilość zajmowanego przez nie miejsca i powinno działać. Następnie stworzę widok i będe mógł tworzyć zapytania w stylu.
SELECT * FROM v_users WHERE uid = 3;
Pytanie tylko. Czy to jest dobre rozwiązanie? Może polecicie coś lepszego zanim zasiąde do kodowania
