Autor | Zpráva | ||
---|---|---|---|
djkmito Profil |
Zdravím,
zatiaľ som robil iba také jednoduché databázy, kde neboli tabuľky prepojené, no chcem už skúsiť niečo zložitejšie a rozmýšľam nad efektívnym návrhom schémy pre túto konkrétnu stránku. http://teja.sk/tarrif.php ..máte nejaké návrhy? |
||
Sir Tom Profil |
#2 · Zasláno: 31. 12. 2012, 01:12:08
djkmito:
Také zdravím, nejdříve popiš všechny požadavky a pak ti třeba někdo udělá nějakou schému, nebo dokonce ER model. |
||
whoami Profil |
djkmito:
jak píše Sir Tom: „nejdříve popiš všechny požadavky“ To by napomohlo tomu zjistit jakou chceš funkčnost.. Bez toho netuším co to má umět.. ale jednoduchý příklad který mě napadá při prvním pohledu na stránku..: -- Adminer 3.6.2 MySQL dump SET NAMES utf8; SET foreign_key_checks = 0; SET time_zone = 'SYSTEM'; SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; DROP TABLE IF EXISTS `category`; CREATE TABLE `category` ( `id` int(255) NOT NULL AUTO_INCREMENT COMMENT '#', `priority` int(255) NOT NULL DEFAULT '1024', `active` tinyint(1) unsigned NOT NULL DEFAULT '0', `label` varchar(255) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `label` (`label`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; DROP TABLE IF EXISTS `category_item`; CREATE TABLE `category_item` ( `id` int(255) NOT NULL AUTO_INCREMENT COMMENT '#', `category_id` int(255) NOT NULL, `priority` int(255) NOT NULL DEFAULT '1024', `active` tinyint(1) unsigned NOT NULL DEFAULT '0', `label` varchar(255) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `category_id_label` (`category_id`,`label`), CONSTRAINT `category_item_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; DROP TABLE IF EXISTS `category_item_duration`; CREATE TABLE `category_item_duration` ( `id` int(255) NOT NULL AUTO_INCREMENT COMMENT '#', `category_item_id` int(255) NOT NULL, `priority` int(255) NOT NULL DEFAULT '1024', `active` tinyint(1) unsigned NOT NULL DEFAULT '0', `label` varchar(255) COLLATE utf8_bin NOT NULL, `price` double NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `category_item_id_label` (`category_item_id`,`label`), CONSTRAINT `category_item_duration_ibfk_1` FOREIGN KEY (`category_item_id`) REFERENCES `category_item` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; -- 2012-12-31 01:55:42 |
||
Sir Tom Profil |
#4 · Zasláno: 31. 12. 2012, 02:35:01
whoami:
To category_item_duration bych tam nedával... Cenu a délku trvání bych dal jako sloupce do tabulky category_item. |
||
djkmito Profil |
stačí ak to budem vedieť vypísať na stránku a do admin rozhrania. Nič iné s tým robiť asi nebudem, len som hľadal efektívny spôsob keďže sa tie položky opakujú, ale cena a dĺžka sa rôzne mení.
whoami: čo má znamenať to "priority"? |
||
whoami Profil |
#6 · Zasláno: 31. 12. 2012, 17:41:23
Sir Tom:
Když se tam většina položek opakuje..? Je to jedna položka s několika tarify.. djkmito: Pokud máš order id ASC například a přidáš něco později (chceš to mít nahoře).. Jinak řečeno řazení.. |
||
Sir Tom Profil |
#7 · Zasláno: 31. 12. 2012, 18:11:35
djkmito:
Pak návrh whoami je ideální - máš tabulku kategorie, služby a pak nabídku/ceník, která obsahuje na řádku službu, dobu trvání a cenu. |
||
djkmito Profil |
#8 · Zasláno: 31. 12. 2012, 18:11:36
takže keď je tam predvolené 1024 tak budem s každou položkou priority dekrementovať?
do label v category_item_duration budem vkladať hodnotu dĺžky trvania? ak áno nebolo by lepšie ukladať to ako tinyint alebo time? a čo znamená active, resp. ako to budem používať? |
||
whoami Profil |
#9 · Zasláno: 31. 12. 2012, 18:49:00
djkmito:
Jak co budeš používat je na tobě.. chtěl si jen příklad.. já ti ho dal.. active je pro možnost vypnutí (WHERE active = 1) a priority pro řazení (ORDER BY priority ASC, id ASC) jinak řečeno nové nakonec.. (za předpokladu že nedosáhneš 1024) a priority přiřadíš od 1 (nahoře).. co se týče duration tak to může být číslo (doba v minutách).. to není problém.. záleží na tobě.. |
||
djkmito Profil |
#10 · Zasláno: 31. 12. 2012, 18:57:27
ja viem, len som sa chcel uistiť či to správne chápem. vďaka za odpovede, už len to zrealizovať
|
||
Časová prodleva: 11 let
|
0