Prosím o pomoc - sql

Programovacie jazyky, rady, poradňa...
sonner
Novice
Novice
Príspevky: 7
Registrovaný: 27 apr 2006, 21:54

Prosím o pomoc - sql

Príspevok od používateľa sonner »

Robíme teraz jednoduché úlohy v konzole linuxu na databázových systémoch, no neviem si poradit s tymto zadaním...

Vytvorte program na evidenciu a sledovanie rozpočtu rodiny.V rámci evidencie budú obsiahnutí všetci členovia rodiny vrátane domácich zvierat.Systém bude umožnovať evidenciu príjmov a výdavkov rodiny za jednotlivé dni.

Potreboval by som to ako skripty jednotlivých tabuliek a prepojenie medzi nimi.

pomohol by niekto?
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

Takto som sa este s sql nezaoberal, ale jedine s cim ti viem poradit, je.. aby si vytvoril jednotlive tabulky v phpmyadminovy a dal exportovat databazu. Tym ziskas casti prikazov, ktore ti treba zapisovat do konzoly. Viac naozaj neviem. :oops:
sonner
Novice
Novice
Príspevky: 7
Registrovaný: 27 apr 2006, 21:54

Príspevok od používateľa sonner »

ppt napísal:Takto som sa este s sql nezaoberal, ale jedine s cim ti viem poradit, je.. aby si vytvoril jednotlive tabulky v phpmyadminovy a dal exportovat databazu. Tym ziskas casti prikazov, ktore ti treba zapisovat do konzoly. Viac naozaj neviem. :oops:
Nemozes mi dat pls link, kde zozeniem ten phpmyadmin?
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

PHPmyAdmin ziskas, ak nainstalujes na svoj localhost nejaky mysql server (napr ja pouzivam kombinaciu apache+php+mysql program PHPtriad). Alebo jednoduchsia cesta je zaregistrovat sa na nejakom freehostingu, ktory ponuka jednu mysql databazu. Napr. sa zaregistruj na www.php5.sk a tam si vytvor databazu. Na phpmyadmin sa tam prihlasis cez http://myadmin.php5.sk
sonner
Novice
Novice
Príspevky: 7
Registrovaný: 27 apr 2006, 21:54

Príspevok od používateľa sonner »

Notak,neviete mi s tym pomoct?
final
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 206
Registrovaný: 04 dec 2005, 11:43
Bydlisko: Prievidza

Príspevok od používateľa final »

to je také zadanie, že človek musel byť asi nahúlený.. sa z toho nedá všetko domyslieť..

k tomu ani netuším čo za DB ;) dačo som ti spravil v mysql s innodb typom, v inej db nerobím.. a v bashi, alebo v čom to tam máš tiež nie, tak čisto len sql dotazy..

Kód: Vybrať všetko

CREATE TABLE IF NOT EXISTS `zoznamClenov`
            (
            `id` INT(3) NOT NULL AUTO_INCREMENT PRIMARY KEY,
            `clen` VARCHAR(100) NOT NULL,
            UNIQUE (`clen`)
            )
            ENGINE=INNODB
            CHARACTER SET utf8
            COLLATE utf8_general_ci;

CREATE TABLE IF NOT EXISTS `vydavky`
            (
            `id` INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
            `clen` INT(3) NOT NULL,
            `cas` INT(10) NOT NULL,
            `vydavok` DOUBLE(6,2) NOT NULL,

            FOREIGN KEY (`clen`)
              REFERENCES `zoznamClenov` (`id`)
                ON DELETE CASCADE
                ON UPDATE NO ACTION

            )
            ENGINE=INNODB
            CHARACTER SET utf8
            COLLATE utf8_general_ci;

CREATE TABLE IF NOT EXISTS `prijmy`
            (
            `id` INT(3) NOT NULL AUTO_INCREMENT PRIMARY KEY,
            `clen` INT(3) NOT NULL,
            `mesiac` CHAR(7) NOT NULL,
            `prijem` DOUBLE(6,2) NOT NULL,

            FOREIGN KEY (`clen`)
              REFERENCES `zoznamClenov` (`id`)
                ON DELETE CASCADE
                ON UPDATE NO ACTION,

            UNIQUE (`clen`, `mesiac`)
            )
            ENGINE=INNODB
            CHARACTER SET utf8
            COLLATE utf8_general_ci;
pre lepší prehľad máš aj obrázok, kde máš lepšie znázornenú integritu referenčných kľúčov..

k dotazom..

insert, pri príjmoch, tam je mesiac unikátny, takže pre každého člena môže byť len jeden mesačný príjem..

select, to spravíš jednoducho cez left join, relácia 1:X

delete, keď zmažeš člena, automaticky sa zmažú jeho výdavky/príjmy..

na čas používaj UNIX_TIMESTAMP() - INT(10) a dátum substr(CURRENT_DATE, -10, 7) - CHAR(7)

keby si mal mať nejaký ten zoznam mesiacov, tak v podstate výber je len taký, že v ktorých dňoch bol nejaký príjem a podľa toho budú výdavky.. možno by bolo dobré spraviť trigger pred insertom a tam by sa tie dátumy doplnili od prvého po akutuálny, alebo iba k tým dňom ku ktorým existujú výdavky..

neviem aké dotazy budeš potrebovať, tak ak budeš mať s nejakým problém, tak napíš..

(ak som dakde spravil chybu, alebo blbo to navrhol, sry, bolo to na rýchlo, ale tá pointa by tam v podstate mala byť..)

final
Prílohy
db.PNG
db.PNG (8.45 KiB) 1075 zobrazení
sonner
Novice
Novice
Príspevky: 7
Registrovaný: 27 apr 2006, 21:54

Sonner

Príspevok od používateľa sonner »

Ďakujem Ti veľmi pekne moc si mi pomohol.Este som si to nestihol prezriet program, tak keby som mal este nejake otazocky tak napisem...
pedrix
Novice
Novice
Príspevky: 2
Registrovaný: 18 aug 2008, 18:58

foreign key

Príspevok od používateľa pedrix »

Nechcem zbytocne vytvarat novu temu a tu otom bola rec tak to davam sem.Potrebujem uz do existujucej tabulky vlozit foreign key.Spravim to takto:

Kód: Vybrať všetko

ALTER TABLE `child` ADD (
FOREIGN KEY ( `clen` ) REFERENCES `parents` ( `id` ) ON DELETE CASCADE ON UPDATE NO ACTION 
) 
Prikaz mi vyhodnoti ako uspesny ale pri naplnani tabuliek mi foreign key ( clen ) zaplna vzdy cislom 0. Neviem co robim zle a uz vobec si neviem pomoct.Ak viete ako na to pls :(
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Aká databáza? Aký engine? Aké QUERY?
pedrix
Novice
Novice
Príspevky: 2
Registrovaný: 18 aug 2008, 18:58

foreign key

Príspevok od používateľa pedrix »

Tabulku som spravil cez php my admin.Mysql typ MyISAM. Ak treba nieco konkretnejsie tak poslem,ak som nieco vynechal tak sorry ale len zacinam :wink:
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

1. Neviem, či už MyISAM podporuje foreign key.
2. Pokiaľ viem, tak to slúži len ako kontrola vkladaných údajov (a teda, či potrebné údaje sú aj v odkazovanej tabuľke). Teda ak chceš, aby bolo v clen niečo, tak to tam musíš dať ty (MySQL nemôže vedieť, čo tam má byť).
Napísať odpoveď