Nie wiem dokładnie, co powinienem nazwać to pytanie. Właśnie rozpocząłem programowanie po stronie serwera i potrzebuję pomocy.Dynamiczne tworzenie nowych modeli rekordów aktywnych i tabel bazy danych
Wszystkie samouczki I do tej pory przeczytać na RoR czynienia z tworzeniem predefiniowanych tabeli iz zdefiniowanym pola (id, nazwisko, e-mail, etc etc). Używają ActiveRecord jako klasy bazowej, a zapisywanie do db jest obsługiwane automatycznie przez nadklasę.
To, co próbuję programować, to coś, co pozwala na zdefiniowanie przez użytkownika tabeli z polami. Pomyśl o tym w ten sposób. Interfejs internetowy będzie zawierał pustą tabelę, użytkownik wskaże nazwę tabeli i doda kolumny (pole), a następnie doda wiersze, a następnie zapisze je. Jak mam to wdrożyć? Nie proszę o szczegóły, tylko o przegląd. Jak już wspomniałem, wszystkie tutoriale, które przeczytałem do tej pory, dotyczą wstępnie zdefiniowanych tabel z polami, w których wstępnie zdefiniowano podklasę ActiveRecord.
Tak więc, w skrócie, pytam, jak tworzyć tabele w db na runtime i dodawać pola do tabel.
Mam nadzieję, że było jasne, jeśli nie, proszę dać mi znać, a ja postaram się opracować nieco więcej. Dzięki.
Jeśli dopiero zaczynasz programowanie WWW po stronie serwera, to może zacząć od Hello world? :) Z twojego pytania wynika, że chcesz zbudować internetową bazę danych z całą masą meta-programowania. Sugeruję podjęcie stopniowych kroków w tym kierunku. Mogę nieco zobrazować, jak można zrobić to, czego chcesz, po prostu nie wyjaśniaj tego w "tylko zaczynasz programować po stronie serwera". Mam na myśli to w najładniejszy sposób. Tak? –
Wynajmowanie przypadkowych użytkowników jako projektanta bazy danych jest ryzykowną i ryzykowną działalnością. –
To, co próbujesz zrobić, jest BARDZO ZAAWANSOWANE i w zasadzie jest to zły pomysł (ale w rzeczywistości całkiem typowy dla początkujących!). Użytkownicy systemu powinni przechowywać dane. Posiadanie ich przy tworzeniu tabel jest po prostu złym podejściem i złym pomysłem, chyba że masz dużą ilość doświadczenia z DBMS. Twórca schematu (w tym przypadku) musi tylko tworzyć elastyczne struktury danych, które będą przechowywać wszystko, czego potrzebujesz. Po prostu zapomnij o tym, że użytkownik tworzy podejście do tabel. W końcu oni też tworzyli indeksy? Czy oni rozumieją wyjątkowy? Czy rozumieją łączenia? klucze kompozytowe? tak. –