Topic: Del table duomenu

Sveiki esu zalias dirbu su phpMyAdmin ir istiko problema kaip pasielgti yra variantas toks
imone renka duomenis apie zmones kurie gali buti vidaus ir isores viena lentele atrodo taip:

CREATE TABLE crm (
    company_ID INT(15), 
    object_ID INT(15), 
    crm_ID INT(15), 
    Name VARCHAR(50),
    ...
    In_Company tinyint(1)
    );

ir reikalinga viena lentele kur bus saugomi 5 crm lenteles duomenys:

CREATE TABLE order (
    OrderNr VARCHAR(50),
    ..., 
    PPV_ID INT(15), 
    ENG_ID INT(15), 
    REG_ID INT(15), 
    Com_cont_ID INT(15), 
    Obj_cont_ID INT(15),
    ...
    );

Kaip man pasielgti?

Sugalvojau viena varianta kad duomenis saugoti 5 view bet
tai reikalauja pakankamai resursu vien uzklausu laikas daug kartu isauga:

CREATE VIEW order_ppv AS SELECT
    crm.CRM_ID, crm.Name, 
    FROM crm WHERE crm.In_Company = 1;

CREATE VIEW order_Com_cont AS SELECT
    company.Company_No,
    crm.CRM_ID, crm.Name
    FROM crm 
    INNER JOIN company ON company.Company_No = crm.Company_No
    WHERE crm.In_Company != 1;

Butu gerai jei kas pasakytu koki buda ar pasakytu ka bandyti naudoti

        Aciu, uz sugaista laika skaitant.

Re: Del table duomenu

Tai panašu, kad tiesiog niekur neuždėjęs indeksų. Kaip lengviau ieškoti knygos bibliotekoje, kai sudėliotos pagal abėcėlę ir suskirstytos pagal kategorijas ar kai bet kaip? :)

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

3 (edited by MegaBAitas 2013-02-26 15:05:00)

Re: Del table duomenu

Orders lenteleje turi buti pasirinktinai asmuo atsakingas uz ppv kitas eng kiti bus kontaktiniai asmenys is kitos imone ar kito objekto jie kiekvienam OrderNo yra skirtingi. Order lentele turi saugoti 29 duomenis tarp ju yra 5 crm lenteles duomenys kurie yra 3 vidaus ir 2 isores, as orders lentele noriu saugoti concat su pagrindine info. Del indexu tai susidejau.

Kolkas atrodo taip

http://postimage.org/image/d2r6452hp/
   P.S. Cia neviskas

Re: Del table duomenu

O tai kokia problema? Jei stabdo view'as - tai pasiimi pažiūri atidžiai užklausą su kuria tas views'as sukurtas (EXPLAIN). Jei trūksta indekso - stabdys views'as. Jei iš tų views'ų dar kažką joinini - tai norint atlikti join'ą reikės atlikti visas tų views'ų užklausas.

šiaip per daug nesigilinus nematau, kad čia galėtų stabdyti. O dėl duomenų struktūros tai toks jausmas, kad kažkas čia ne taip... Pradžiai bandyčiau supaprastinti užduotį, nes tie "duomenys kurie yra 3 vidaus ir 2 isores" keistokai atrodo.

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Del table duomenu

Sugalvojau, view nebereikia kurti order lenteleje sukuri 5 Concat(su pagrindine info nurodai kad is crm.FirstName, crm.LastName) AS PPV, ... AS ENG, ... AS Contact ir t.t., sujungi  INNER JOIN ir viskas veikia. Dekuj uz pagalba zygi. Problema buvo, kad nepagalvojau, kad galima AS naudoti ir taip gauti skirtingus duomenis is tos pacios lenteles.

6 (edited by ugniesdebesys 2014-02-26 17:27:12)

Re: Del table duomenu

Sveiki

Pirminių raktų nėra, ne tik indeksų; nes indeksai gali būti neunikalūs