{"id":1348,"date":"2013-10-31T13:15:57","date_gmt":"2013-10-31T12:15:57","guid":{"rendered":"http:\/\/www.matjazev.net\/blog\/?p=1348"},"modified":"2013-10-31T13:15:57","modified_gmt":"2013-10-31T12:15:57","slug":"stevilcenje-v-sql-podatkovnih-bazah","status":"publish","type":"post","link":"https:\/\/www.matjazev.net\/blog\/2013\/10\/31\/stevilcenje-v-sql-podatkovnih-bazah\/","title":{"rendered":"\u0160tevil\u010denje v SQL podatkovnih bazah"},"content":{"rendered":"<p>V razvoju prej ali slej naletimo na problem, <strong>ko moramo zapise \u0161tevil\u010diti.\u00a0Vsakemu dokumentu pa\u010d moramo dolo\u010diti edinstveno \u0161tevilko, ki pa mora biti ob tem \u0161e zaporedna.<\/strong><\/p>\n<p>Vse SQL podatkovne baze poznajo <strong>avtomati\u010dno \u0161tevil\u010denje primernega klju\u010da \u2013 <\/strong>ko torej v tabelo dodamo nov zapis, slednji dobi naslednjo zaporedno \u0161tevilko. To imenujemo <strong>tehni\u010dno \u0161tevil\u010denje zapisov. <\/strong>Problem pa se pojavi, ko <strong>potrebujemo vsebinsko \u0161tevilko <\/strong>dokumenta.<\/p>\n<p>Za la\u017eje razumevanje problema, si predstavljajmo tipi\u010dno podatkovno tabelo, v kateri imamo poslovne dokumente \u2013 predra\u010dune, ra\u010dune, dobavnice\u2026 Vsi razli\u010dni dokumenti so v isti tabeli, a vsak med njimi mora imeti lastno vsebinsko \u0161tevilko. Primer:<br \/>\n<pre lang=&#8221;vb&#8221;>#&nbsp;&nbsp;DOKUMENT&nbsp;&nbsp;&nbsp;&nbsp; VSEB. \u0160T.&nbsp;&nbsp; OSTALI PODATKI\n\n1&nbsp;&nbsp;Predra\u010dun&nbsp;&nbsp;&nbsp;&nbsp;PR-1\/2013&nbsp;&nbsp; ... itd ...\n2&nbsp;&nbsp;Predra\u010dun&nbsp;&nbsp;&nbsp;&nbsp;PR-2\/2013&nbsp;&nbsp; ... itd ...\n3&nbsp;&nbsp;Ra\u010dun&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RA-1\/2013&nbsp;&nbsp; ... itd ...\n4&nbsp;&nbsp;Dobavnica&nbsp;&nbsp;&nbsp;&nbsp;DO-1\/2013&nbsp;&nbsp; ... itd ...\n5&nbsp;&nbsp;Predra\u010dun&nbsp;&nbsp;&nbsp;&nbsp;PR-3\/2013&nbsp;&nbsp; ... itd ...\n6&nbsp;&nbsp;Predra\u010dun&nbsp;&nbsp;&nbsp;&nbsp;PR-4\/2013&nbsp;&nbsp; ... itd ...\n7&nbsp;&nbsp;Ra\u010dun&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RA-2\/2013&nbsp;&nbsp; ... itd ...\n8&nbsp;&nbsp;Dobavnica&nbsp;&nbsp;&nbsp;&nbsp;DO-2\/2013&nbsp;&nbsp; ... itd ...\n9&nbsp;&nbsp;Dobavnica&nbsp;&nbsp;&nbsp;&nbsp;DO-3\/2013&nbsp;&nbsp; ... itd ...<\/pre><br \/>\nKot je lepo vidno v tabeli ima vsak tip dokumenta lastno \u0161tevil\u010denje.<\/p>\n<h2>Kako dolo\u010diti vsebinsko \u0161tevilko?<\/h2>\n<p>Opcij je seveda ve\u010d a nekako jih lahko uredimo v tri sklope:<\/p>\n<ol>\n<li><strong>Sekvence \u2013 <\/strong>\u010de jih podatkovna baza podpira.<\/li>\n<li><strong>Lastna tabela za vsak tip \u0161tevil\u010denja<\/strong> &#8211; za vsak tip dokumenta narediti lastno tabelo, ki dolo\u010di naslednjo \u0161tevilko<\/li>\n<li><strong>Ena tabela za vso \u0161tevil\u010denje<\/strong> &#8211; za vse \u0161tevil\u010denje uporabiti eno samo tabelo<\/li>\n<\/ol>\n<h3>Sekvence<\/h3>\n<p><strong>Dobro<\/strong><\/p>\n<ul>\n<li>Re\u0161itev namenjena temu konkretnemu problemu<\/li>\n<\/ul>\n<p><strong>Slabo<\/strong><\/p>\n<ul>\n<li>Ne poznajo jo vse podatkovne baze<\/li>\n<\/ul>\n<h3>Lastna tabela za vsako \u0161tevil\u010denje<\/h3>\n<p><strong>Dobro<\/strong><\/p>\n<ul>\n<li>Deluje v vseh SQL bazah<\/li>\n<li>Zelo podobna re\u0161itev kot sekvence<\/li>\n<\/ul>\n<p><strong>Slabo<\/strong><\/p>\n<ul>\n<li>Veliko malih tabel<\/li>\n<li>Vse tabele je potrebno ustvariti vnaprej ali pa v programu vedno preverjati ali tabela obstaja ali ne.<\/li>\n<\/ul>\n<h3>Za vso \u0161tevil\u010denje uporabiti eno samo tabelo<\/h3>\n<p><strong>Dobro<\/strong><\/p>\n<ul>\n<li>Deluje v vseh SQL bazah<\/li>\n<li>Preprosta re\u0161itev<\/li>\n<li>Ni veliko dodatnega dela<\/li>\n<\/ul>\n<p><strong>Slabo<\/strong><\/p>\n<ul>\n<li>Ni primerna za SQL baze z veliko hkratnimi uporabniki<\/li>\n<\/ul>\n<p>V naslednjih prispevkih bom podrobneje predstavil vsako izmed mo\u017enosti\u2026<\/p>\n","protected":false},"excerpt":{"rendered":"<p>V razvoju prej ali slej naletimo na problem, ko moramo zapise \u0161tevil\u010diti.\u00a0Vsakemu dokumentu pa\u010d moramo dolo\u010diti edinstveno \u0161tevilko, ki pa mora biti ob tem \u0161e zaporedna. Vse SQL podatkovne baze poznajo avtomati\u010dno \u0161tevil\u010denje primernega klju\u010da \u2013 ko torej v tabelo dodamo nov zapis, slednji dobi naslednjo zaporedno \u0161tevilko. To imenujemo tehni\u010dno \u0161tevil\u010denje zapisov. Problem pa &hellip; <a href=\"https:\/\/www.matjazev.net\/blog\/2013\/10\/31\/stevilcenje-v-sql-podatkovnih-bazah\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">\u0160tevil\u010denje v SQL podatkovnih bazah<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35,34,53],"tags":[66,65,67,30],"_links":{"self":[{"href":"https:\/\/www.matjazev.net\/blog\/wp-json\/wp\/v2\/posts\/1348"}],"collection":[{"href":"https:\/\/www.matjazev.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.matjazev.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.matjazev.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.matjazev.net\/blog\/wp-json\/wp\/v2\/comments?post=1348"}],"version-history":[{"count":15,"href":"https:\/\/www.matjazev.net\/blog\/wp-json\/wp\/v2\/posts\/1348\/revisions"}],"predecessor-version":[{"id":1363,"href":"https:\/\/www.matjazev.net\/blog\/wp-json\/wp\/v2\/posts\/1348\/revisions\/1363"}],"wp:attachment":[{"href":"https:\/\/www.matjazev.net\/blog\/wp-json\/wp\/v2\/media?parent=1348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.matjazev.net\/blog\/wp-json\/wp\/v2\/categories?post=1348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.matjazev.net\/blog\/wp-json\/wp\/v2\/tags?post=1348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}