Własny typ danych / tablica w tablicy.

0

Witam, mam problem z ustaleniem struktury bazy danych.
Weźmy taki głupi przykład w celu wyjaśnienia. Mam tabelę:

|----------------------|
| id | nazwisko | dom  |
|----------------------|
|  1 | Kowalski |  d1  |
| ...|    ...   | ...  |
|----------------------|

Ale obiekt w komórce 'dom' ma tak wiele różnych atrybutów, że przydało by się zdefiniowanie własnego typu / odwołanie do innej tabeli w bazie:

|--------------------------------|
| id |   adres   | powierzchnia  |
|--------------------------------|
|  1 |  adres 1. |      131      |
| ...|    ...    |      ...      |
|--------------------------------|

Czy da się to jakoś zrealizować? Próbowałem czegoś poszukać przez google ale nie znalazłem.
Z góry dzięki.

0

zamiast kolumny dom, kilka innych potrzebnych ci kolumn
jesli zachodzi relacja jeden element nadrzędny - wiele podrzednych (czyli okoba = kowalski, kilka dowolnych atrybutów go opisujących) użyj relacji - klucz główny (PK) - klucz obcy (FK)
czy chodzi ci o to ze to nie musi być dom, tylko np. mieszkanie etc.? czyli generalnie w kolumnie dom masz jakiś obiekt mieszkalny ale różnego typu?
ale coś mi się widzi że i tak kłaniają ci się podstawy relacyjnych baz danych

temat do newbie

0

a kto ci broni stworzyć tabelę dom??

0

MySQL nie posiada typow tablicowych.

Tak jak powiedzieli to poprzednicy: utworz nowa tabele dom, w ktorej utworzysz kolumny takie jak ulica, miasto itp itd.

1

wg mnie wybór rozwiązania nie jest wcale prosty i zależy nie tylko od związanych z jakością kodu oraz przestrzegania kanonów relacyjnych baz danych, ale czasami musi być odniesiony do możliwości programisty lub wykorzystywanego oprogramowania narzędziowego.
Dla wielu osób, które nie pracowały z bazami danych pojęcia złączeń są raczej abstrakcyjne i utrudniające pracę, chociaż mają ją ułatwiać i upraszczać dając przy minimalnym wysiłku programisty realne przyspieszenie generowania kodu oraz uzyskanie skalowalności, co często jest utożsamiane (niekoniecznie) ze skalowalnością.
Dlatego też, wybrałbym opcję z tabelą podrzędną (po wstępnej "dużej ilości pracy" w przyszłości miałbym komfort prostego w rozbudowie rozwiązania), jeżeli na początek jest to dla Ciebie zbyt skomplikowane dodawaj kolumny do tabeli, a w przyszłości może zauważysz, że stosowanie relacji jest przydatne.
Gwarantuję, że większość z forumowiczów (wliczając w tym niektórych guru) nie bawiło się z bazami danych - za to stwierdzenie zapewne zostanę zakrzyczany i przeklęty :) Dobrze chociaż wiedzieć, że ktoś próbuje w tym kierunku iść :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1