Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:718:2601:258:20e7:2cf4:986a:60e0...–

peter
Java › Java program Studentská knih…
29. 6. 2021   #388021

Jinak, v tom tvem kodu, to bych asi cele resil uplne jinak, kdyz uz data chces tlacit mermomoci do class, asi zadani ucitele.

public class Autor
{
    public int autor_id;
    public String jmeno;
    
    public Autor(int autor_id, String autor_jmeno){
        this.autor_id= autor_id;
        this.autor_jmeno = autor_jmeno;
    }
}

public class Kniha
{
    public int id;
    public int sn;
    public String jmeno;
    public int autor_id;
    
    public Kniha(int id, int kniha_sn, String kniha_jmeno, String autor_id){
        this.id = kniha_id;
        this.sn = kniha_sn;
        this.kniha_jmeno = kniha_jmeno;
        this.autor_id = autor_id;
    }
}

public class PolozkaSkladu
{
    public int kniha_id;
    public int mnozstvi;
    
    public PolozkaSkladu(int kniha_id, String mnozstvi){
        this.kniha_id= kniha_id;
        this.mnozstvi= mnozstvi;
    }
}

public class Sklad
{
    public (pole) sklad;
    public (pole) knihy;
    public (pole) autori;

public insert (kniha_sn, kniha_jmeno, kniha_autor, mnozstvi)
{
autor_id = autorInsertifNotExist(autor jmeno) // this->autori
kniha_id = knihaInsertifNotExist(kniha_sn, kniha_jmeno, autor_id) // this->knihy, new kniha
sklad_id = skladInsertifNotExist(kniha_id, mnozstvi) // this->sklad, new polozkaSkladu
}
}

A pak si tam dopis funkce, ktere kontroluji existenci v tom poli sklad, knihy, jmena....  ale, muzou tam byt chyby, javu neznam. Ta sklad->insert by mela byt obdova tvoji kniha prazdny a kniha neprazdna, to bude treba tam jeste ssikovne doplnit.

peter
Java › Java program Studentská knih…
29. 6. 2021   #388020

   

dbData = array(); // oprava nazvu
structure = array( 'osoby': array('jmeno':'', 'prijmeni':'') )
db = new classDb(dbData, structure); // oprava nazvu
db->insert('osoba', array('jmeno': 'tonda'))
founded = db->selectByIndex('osoba', 'jmeno', 'tonda')

jinak, to je jakoze takovy php/js kod, ten zapis nemusi byt jave podobny. Ale, s tim si asi poradis.

peter
Java › Java program Studentská knih…
29. 6. 2021   #388019

Proc nepouzijes databazi? Nebo si vytvor class, ktera se chova jako databaze.
Javu nepouzivam, ale pseudo kod by mohl vypadat nejak takto: 

class classDb {
private db;
private structure;

function construct(&db, structure) // pointer vnejsiho pole
{
this->db = db; // predej pointer pole
this->structure = structure; // predej pointer pole
}

function createTableIfNotExist (table_name)
{
if (!isExist(this->db[table_name]))
    {this->db[table_name] = array()}
}

function formatRowToStructure (new_row)
{
}

function selectByIndex (table_name, index_name, value, limit)
{
table = this->db[table_name]
out = array()
foreach(table as index=>row) // prohledej pole
    {
    if (row[index_name]==value)
        {
        out[] = row; // pridej odpovidajici radek do vystupu
        if (count(out)==limit) {break;} // zastav, pokud jsi splnil limit, treba 1 radek
        }
    }
return out
}

function insert (table_name, new_row)
{
new_row = this->formatRowToStructure(new_row) // tady bys mel mit neco, co veme data z pole new_row a preformatuje je na strukturu tabulky
this->createTableIfNotExist(table_name)
this->db[table_name] = new_row
}

function updateByIndex (table_name, index, new_row)
{
}

function deleteByIndex (table_name, index, new_row)
{
}

}


db = array();
structure = array( 'osoby': array('jmeno':'', 'prijmeni':'') )
db = new classDb(db, structure);
db->insert('osoba', array('jmeno': 'tonda'))
founded = db->selectByIndex('osoba', 'jmeno', 'tonda')

Jakoze, pak uz te pocet tabulek trapit nemusi, kdyz budes mit funkcni mechanizmus, ktery ti bude prohledavat jakousi alternativu databaze.
A nebo pouzit primo databazi a sql prikazy, ta je na to urcena. Nevim, proc se uchylujes k jinym praktikam. 

SELECT * FROM table_name WHERE jmeno='tonda' // podobne memu db->selectByIndex

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý