Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di wTano
    Registrato dal
    Sep 2008
    Messaggi
    32

    Domanda sulla referenzialità delle basi di dati

    Salve a tutti,
    sto gestendo una base di dati per un gioco. Ad un certo punto è nata l'esigenza di inserire in una tabella, le tabelle di corrispondenza per alcune informazioni.

    Mi spiego meglio, guardate questa immagine:



    Nella tabella map_properties ho una fk_table (in giallo), un campo che si riferisce alla tabella a cui fa riferimento quell'oggetto, in rosso, ho l'id dell'oggetto specifico. Ora, considerando che gli id di tutti gli oggetti saranno comunque univoci. Volevo sapere se questa soluzione fosse buona. Perchè io personalmente la trovo orribile. Ma non saprei come referenziare degli oggetti che hanno diverse proprietà. Potrei usare una tabella sola, ma poi avrei dei campi a NULL..

    Quindi chiedevo, come posso normalizzare questo schema? Quale scelta è la migliore? Spero di essere stato chiaro nel porre la domanda!

    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di wTano
    Registrato dal
    Sep 2008
    Messaggi
    32
    In parole povere vorrei capire come trattare il polimorfismo dei dati nelle basi di dati. Con MySQL.

  3. #3
    Ciao,
    se map_properties può referenziare solo un m_<qualcosa> ti consiglierei di utilizzare una sola tabella che raggruppi le m_bot, m_shop, m_game, m_warp.

    In comune queste tabelle hanno id_obj, x, y, property, mentre z aspect e id_object_dest saranno compilati in base al tipo dell'item.
    Ti consiglio di aggiungere un nuovo campo 'type' che specifica che item è: bot, shop, game o warp, così hai 2 vantaggi, il primo è che nella select hai anche l'informazione del tipo, in futuro puoi ampliare i tipi senza dover aggiungere tabelle nuove.

    A questo la relazione fra le 2 tabelle sarà n:1 per cui ti basta utilizzare id_obj nella map_properties.

    Ciao

  4. #4
    Utente di HTML.it L'avatar di wTano
    Registrato dal
    Sep 2008
    Messaggi
    32
    Cioè utilizzare un campo "ibrido" per z, aspect, id_obj_dest? Tutti insieme? E quindi identificare il tipo con il campo "type" e prendere di conseguenza il risultato nel campo ibrido che mi serve?

    Scusa se ho capito male.. Ma se poi devo aggiungere una nuova proprietà ad un oggetto? Ad esempio un oggetto compleamente nuovo "x" che ha come proprietà 5 o 6 elementi? Perdonami se ho capito male.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.