Autor Zpráva
Jcas
Profil *
Dobrý den
Mohu poprosit o pomoc s návrhem databáze?

"Nevíš, kdo chová (slepice)Barneveldky a (králíky) Belgické obry?"
Tak toto je cíl - db chovatelů, protože toto je nejčastější problém chovatelů.

1.Dotaz
user-jméno-přijm-adresa-tel-email
Budu potřebovat k těm sloupcům asi další, který (1-0) řekne zda je údaj veřejný.
Jméno - jmenoVeřejné - přijmení - přijmeniVeřejné - tel - telVeřejný....

Možná bude v budoucnu třeba chovatele ještě spojit s klubem či organizací. Ale to by asi neměl být problém s přidáním sloupce. (a možná se připojí i zahraniční chovatelé, protože se spolupráce čím dál tím víc rozvíjí)

2. Dotaz
A nyní chovaná zvířata. Původně jsem si myslel, že asi nemá cenu víc tabulek. Vždy jeden chovatel a jeho data. Chtěl jsem je nechat vyplňovat zvířata v textarea jednoduše, jak to tam nabouchají. Pro ty chovatele naprosto nej. Ale pak mě došlo, že nevím, jak bych dělal vyhledávání. Protože vyhledávání dle zvířat bude asi nejdůležitější. Jako druhý klíč bude asi kraj.(přip. v budoucnu by mohl být vyhledávací klíč organizace-klub)

-nevím kolik a jaká zvířata má. To může být 1, ale taky 10 plemen ze 4 druhů zvířat
- jak jim nabídnout jednoduchý Už.Rozh. pro vyplňování
- jak to navrhnout, aby se to pak lehce hledalo
juriad
Profil
1. Raději přidat novou tabulku vlastností. Půjde tak snadněji přidávat další údaje (např.: národnost)

2. Asi bych nabídl uživatelům tabulku, kde si kliknutím přidá další řádku se zvířetem.
A jak k sobě, tak k jednotlivým chovům může přidávat vlatnosti a napsat k nim i poznámky.

Navrhl bych to asi takto:

Tabulka uživatel:
- id (číselný identifikátor uživatele)
- uživatelské jméno (Jcas, Jpozde)

{ tyto dvě tabulky realizují poznámky k uživateli
Tabulka uživatelské vlastnosti:
- id (číselný identifikátor)
- název (telefon, email, adresa, očanské jméno)

Tabulka vlastnosti uživatele:
- id kombinace
- id vlastnosti (identifikátor do předchozí tabulky)
- hodnota (např: pepa@novak.cz, Za Školou 2, Praha 1)
- poznámka (např. volat jen večer)
- veřejné (např: 0)
}

{ tyto dvě tabulky realizují zvířata a vazbu na chovatele
Tabulka zvířata:
- id zvířete (číselný identifikátor)
- název zvířete (např: Belvederka, Belický obr, koza, králík)
- nadřazená skupina (odkaz do té samé tabulky)

Tabulka chovů:
- id chovu (číselný identifikátor)
- id uživatele
- id zvířete
}

{ tyto dvě tabulky realizují vlastnosti (poznámky)
Tabulka vlastností chovů (seznam vlastností):
- id vlastnosti
- název vlastnosti (např: počet, od roku, na prodej)

Tabulka vlastností chovů (hodnoty vlastností):
- id vlastnosti (např: na prodej)
- hodnota vlastnosti (napří: 1)
- poznámka (např: od deseti kusů)
}

Zvířata budou mít dvě úrovně:
- první bude obecná: slepice, kozy, králíci
- druhá bude plemeno
Uživatel při vyhledávání může hledat přímo plemeno nebo obecně druh.
Realizováno to může být třeba pomocí Formuláře » optgroup
Jcas
Profil *
Uživatel:
Je pravda, že co chce nebo nechce mít veřejné by šlo postavit do pozice zda to vyplní, nebo ne.
Někdo chce zvěřejnit pouze tel., někdo pouze email, někdo vše. Nicméně email musí být povinný, ať veřejný či ne. Když ne, tak bude server odesílat email "tento uživatel by rád Vás kontaktoval kvůli slepicím"

Zvířata:
- nadřazená skupina (odkaz do té samé tabulky)
tomuto nerozumím.

- název zvířete (např: Belvederka, Belický obr, koza, králík)
tomuto taky ne, když jsi do jednoho sloupce hodil nadřazenou a podřazenou skupinu.
Jakože když Belgický obr je králík, tak 1 už. bude mít dva řádky. Jeden s "králík" a druhý s "belgický obr"?
juriad
Profil
Jcas:
OK, tak můžeš e-mail pro potřeby aplikace přidat do tabulky uživatelé. Ale takový by nebyl veřejný a dostupný uživatelům.

Ano v jedné tabulce budeš mít jak zvířata, tak plemena. Budou tam tedy dva řádky "králík" a "belgický obr".
(1, "Králík", NULL), (2, "Belgický obr", 1), (3, "Koza", NULL), (4, "Angora", 1), (5, "Koza bezoárová", 3)

Pokud ty úrovně budou jen dvě, případně jen tři (konečný počet!), pak lze napsat dotaz, který bude hledat chovatele zadaného objektu a všech jeho podobjektů.
Tu hierarchii lze řešit i jinak než odkazem na předka (obecnější záznam), ale obvykle se to vyplatí při větších hloubkách.
Uživatel může zadat, že chová obecně králíky nebo že chová přímo konkrétní plemena.

Pokud uživatel zadá, že hledá chovatele slepic, najde chovatele, kteří uvedli, že chovají slepice, i ty kteří uvedli, že chovají Belvederky (což je druh slepic).
Pokud uživatel zadá, že hledá chovatele Belvederek, najde mu jen ty chovatele Belvederek, nikoli obecně chovatele slepic nebo jiných plemen.
Jcas
Profil *
Děkuju, tak já to tak nějak zkusím udělat.
Jcas
Profil *
Ještě mám doplňující dotaz. Jak se dělá potvrzení registrace?
Jednou jsem to dělal tak, že jsem si do Db uložil všechna odeslaná data z formuláře a v tabulce jsem sloupec 'potvrzeni' 1/0. Až potvrdil z emailu, ta jsem to změnil na 1 a to jsem pak používal při výpisu jako kontrolu, zda je uživatelský účet aktivní.

Ale potvrzení z emailu má asi spíš bezpečnostní efekt, kvůli spamům (nevím, zcela tomu nerozumím), což v tomto případě asi nebylo správně, když jsem data ukládal do DB dřív než jsem měl potvrzení z emailu.
juriad
Profil
Přesně tak se to obvykle dělá. Záleží na tobě, jakou akci budeš považovat za potvrzení, může to být:
- kliknutí na odkaz v emailu,
- první přihlášení,
- schválení adminem,
- nebo něco jiného, co vymyslíš.

Potřebuješ registraci vůbec potvrzovat?
Jcas
Profil *
Ta otázka není o tom, jak potvrdit registraci. Je to o spamech. Věc o které mám velké nejasnosti a nerozumím jí.
Říkal jsem si - potvrzení je z důvodu, aby se ověřilo, že se jedna o aktivního uživatele, který si nevymýšlí. Takže nějaká vtipálek, nebo robot nedokáže odeslat registraci, když ji nepotvrdí z emailu.

Což ovšem v mém případě postrádá smysl, protože data uložím do DB dřív než je potvrdím. Takže by robot mohl plácat do DB spousty dat. On by je sice nepotvrdil, protože by nereadoval na potvrzovací email, ale plácal by do DB spousty dat.

Upřímně vůbec nemám tušení, jak spamy a roboti fungují. Ale přečíst si formulář, naplnit pole něčím a poslat na určitou adresu mi pro robota nepřipadá jako těžký úkol.

Jinak registraci vůbec potvrzovat nepotřebuji.
juriad
Profil
I kdyby jsi každý den měl tisíc fiktivních registrací, databáze to zvládne a tobě to může být jedno. Můžeš je třeba jednou za měsíc promazávat (ty, které se nikdy nepřihlásily). Ale otázkou je, jak poznat aktivní registraci. Přece může existovat chovatel, který nevyplní nic, protože ještě nic nechová, ale chtěl by začít a hledá kontakty.
Můžeš třeba ukládat datum posledního loginu. A pokud je více než půl roku starý, napíšeš mu email, ať se do měsíce přihlásí a tím potvrdí, že o účet má stále zájem.
Jcas
Profil *
Jsem se asi blbě vyjádřil a ty jsi to proto špatně pochopil. Opravdu momentálně řeším pouze roboty.
Tím aktívním uživatelem jsem měl na mysli - ověření, že to vyplňuje skutečná osoba a ne nějaký robot.

Proč se tedy dělá potvrzování emailem? Jaký je důvod?

Ale asi je to potvrzování fakt zbytečnost. Navíc se to kdyžtak kdykoliv přidat.
jenikkozak
Profil
Jcas:
Proč se tedy dělá potvrzování emailem? Jaký je důvod?
1) Ověříš (víceméně spolehlivě), že registraci provedl člověk a ne robot.
2) Zkonroluješ, že zadaná e-mailová adresa je funkční.
3) Ověříš, že adresa patří někomu, komu nebude vadit, že na ni budeš později zasílat další zprávy. Pravděpodobně tedy jde o člověka, který se k tobě registroval.

Což ovšem v mém případě postrádá smysl, protože data uložím do DB dřív než je potvrdím. Takže by robot mohl plácat do DB spousty dat.
Pokud ti ty hodnoty v databázi vadí, můžeš po pár dnech neaktivované účty smazat.
Jcas
Profil *
Tak jsem si udělal soupis, jak na to. Praxe mi už ukázala, že je dobré si informace (jak a co vypadá) napsat a uložit.

Můžu poprosit, jestli by jses mi kouknul na poslední dvě tabulky. Jinak je to to to co jsi mi navrhnul. Ty poslední dvě jsou vlastnosti chovu.
V podstatě se jedná o to, že k těm zvířatům asi nemá cenu nic moc dodávat, ale vymyslel jsem si, že by chovatel měl mít jednoduchý prostor - textu, aby něco ke zvířeti nakecal. Plus k němu přidat fotku a případně si napsat inzerát, což je opět obyč text.

ps. Fotky do DB jsem nikdy nedělal. Nevím, zda jim stačí určit typ sloupce, nebo jestli musí mít vlastní tabulku.

http://zocschmoravskebranice.eu/DB-chovatelu/READMY.txt


ps. Struktura DB - nádhera. Zatím jsem si vždy udělal jednu tabulku a potom plakal nad tím, jak je omezená a jak se s tím nedá nic dělat.
Nicméně, když to vidím, tak je mi už teď naprosto jasné, že ty sql dotazy v životě neposkládám.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: