Tabulky s prefixem nebo sloupec pro definování? rubrika: Databáze: SQL

2 zapotocnylubos
položil/-a 21.6.2017

Ahoj,

když budu mít několik subdomén a pro každou bych chtěl separátní údaje, tak z hlediska návrhu je lepší používát prefixy a mít spoustu tabulek, nebo mít sloupec subdomain_id a pak filtrovat where subdomain_id = 2??

Díky moc

Komentáře

  • harrison314 : Este mozes mat dalsie moznosti: pre kazdu domenu vlastnu databazu (moze byt vyhodne z hladicka skalovania, bezpecnosti a nasazdovania), alebo mat pre kazdu domenu vlastnu databazovu schemu. 21.6.2017
  • zapotocnylubos : To bohužel nemůžu, wedos nepodporuje automatizovanost managementu databázového serveru a vytvoření databází se musí delat ručně 21.6.2017
  • roman.hocke : Budou ty subdomény používat nějaká společná data, nebo je to tak, že co subdoména, to samostatný "svět" nijak nepropojený s ostatními subdoménami (co se týče dat)? 21.6.2017
odkaz
6 Žížala
odpověděl/-a 21.6.2017

Rozhodoval bych se podle

  • Kolik bude záznamů v tabulkách? Tisíce? Statisíce? Miliony?
  • Budu potřebovat záznamy z více domén naráz? Pokud ano, jak velká může být výsledná množina?
  • Budou se množit subdomény jako houby po dešti nebo jich bude pár?
  • Budu potřebovat nějaký systém oprávnění pro přístup k jednotlivým subdoménám?

Tohle jsou základní otázky a bez podrobností Vám asi nikdo rozumně neporadí. Ale obecně, pokud bude záznamů a subdomén málo, proč si ještě přidělávat starosti s vytvářením nových tabulek.

Komentáře

  • zapotocnylubos : No tak ty subdoménu budou v řádech desítek, a jinak záznamy v nějakých tabulkách k jednotlivým subdomenam max v radu stovek - možná někdy pak tisíců 21.6.2017
  • Žížala : V tomto případě, na co zvláštní tabulky? 21.6.2017
  • zapotocnylubos : Tak ja nevim, jestli to nejak ovlivní, protože jsem nikdy neměl takhle velkou Db. Nevim jak mysql zvládá treba selekty z tabulky, Kde je celkově treba 150k záznamu 21.6.2017
  • Žížala : Heh, to není žádná velká DB. A proč mySQl a ne např. PostgreSQl? Ta s těmito počty nemá žádné problémy. 21.6.2017
  • zapotocnylubos : no hosting mám u wedosu, a ty u webhostingu podporují jenom mysql. o koupi vps zatím neuvažuji, protože by se to ještě nevyplatilo. 21.6.2017
  • rs : Pro tak mala cisla opravdu nema smysl splitovat to do vic tabulek bylo by s tim vic prace nez uzitku. Jenom nezapomen udelat spravne indexy. V tomto pripade to bude vzdy slozeny index kde prvni slozkou bude ID_zakaznika. To by melo s prehledem stacit, stovky tisic zaznamu pro DB neni nic pokud spravne indexujes. Jeste kdyby ses dostal do uzkych muzes nasadit partitioning a podle ID_zakaznika a zacit resit clustery ale to nebude tvuj pripad (respektive kdyz uz resis veci tohodle rozsahu tak mas vetsinou i dost zakazniku aby sis mohl najmout nekoho kdo ti s tim pomuze) Obecne problemu ktery resis se rika multi-tenant architecture kdybys chtel vic pohledat. 21.6.2017
  • rs : A jeste bych se jednou zamyslel nad pouzitim MySQL taky bych doporucil spis postgre je o generace dal umozni ti nad problemem premyslet jinak napriklad muzes pouzit view a row level security proto aby si zakaznici nemohli vzajemne cist data, coz je zrovna v tomto pripade celkem uzitecne. U MySQL budes muset vzdycky myslet na to abys do dotazu pridal tu spravnou podminku, jednou zapomenes a prusvich je na svete. S charakteru dotazu co tu pokladas tusim ze jsi teprve na zacatku sve programatorske cesty a u PostgreSQL budes moct delat veci "spravne" u MySQL budes muset casto hledat ruzne vyhybky 21.6.2017
  • zapotocnylubos : a kdybych to tedy zkusil přes postgre, tak jak to secure propojit na webhosting? (wedos nepodporuje nic jiného new mysql). a znova investovat do vps se mi moc nechce. možná jestli znáte nějaký hostig, kde by se vyplatilo, že přecházím (např. rok zdarma nebo tak) který by podporoval postgre. Jo a ještě by to chtělo myslet na security, wedos už je dobře zaopatřený a v základech se dá spolehnout. 21.6.2017
  • dominios : podla mna si velmi upaty na wedos; wedos nieje jedina spolocnost a kodit nieco len s ohladom na to kde to nakoniec bude umiestnene nieje vzdy stastne riesenie - velmi lahko sa moze stat ze ti wedos prestane z akychkolvek dovodov vyhovovat (nove poziadavky, cena, hocico...) a narazis na problem ze premigrovat to nebude tak lahke... vzdy je lepsie si spisat co vlastne ides robit, aka technologia sa najlepsie hodi na tvoje riesenie a az potom si vyberat hosting/server kde to bude realne bezat. Ono ak robis co i len trochu narocnejsiu vec, tak skoncis pri vlastnom (minimalne) virtualnom servery na ktorom si aj tak urobis co budes chciet a ci tam budes mat mysql, postgre, php, javu alebo ruby, tak bude to len na tebe. Pokial ide len a len o peniaze a potrebujes velmi vela setrit, tak do takeho projektu jednoducho nechod, pretoze budes velmi casto narazat na rozne obmedzenia a viac budes riesit tie ako aplikaciu / biznis ako taky. Ale to je len moj nazor, mozno sa mylim :) 21.6.2017
  • Vašek Ch. : "Nevim jak mysql zvládá treba selekty z tabulky, Kde je celkově treba 150k záznamu" -- děláme selekty z tabulek, kde je těch záznamů třeba deset milionů. Když máš dobré indexy, není to problém. 22.6.2017

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.