<?xml version="1.0" encoding="ISO-8859-1"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Commenti a: Concetto di Chiave Primaria</title>
	<atom:link href="http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/</link>
	<description>Articoli, news e pillole sul mondo LAMP e l'opensource</description>
	<pubDate>Tue, 06 Jan 2009 02:07:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>Di: Dato</title>
		<link>http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-22817</link>
		<dc:creator>Dato</dc:creator>
		<pubDate>Tue, 17 Jun 2008 07:50:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-22817</guid>
		<description>Ciao,
aggiungo solo una nota all'esempio dei clienti. Dalla mia esperienza su sistemi gestionali professionali (es. IBM), ritengo che sia opportuno valutare il tipo di chiave in base alla tabella a cui ci si riferisce e al grado di leggibilità che si vuole ottenere. 

Ad esempio, è molto utile identificare un cliente tramite un 'codice_cliente' numerico (es. 000152 nel caso piaccia il padding) e usare questo dappertutto, controllando via software che non si stia inserendo un cliente già esistente (facendo attenzione anche a eliminare i punti, in modo da non farsi ingannare da srl/s.r.l./S.r.L./srl./ecc...).

In altri casi trovo invece più utile avere una chiave alfanumerica 'parlante'; ad esempio, per la tabella delle divise monetarie si potrebbe utilizzare il codice ISO: EUR, USD...; o, per le nazioni: IT, NL, UK, US, ecc.
In questo modo, leggendo dal db un record di riga d'ordine (es. per debug), vedrò "quantita=100, unita_misura='KG', prezzo=10, divisa='EUR'" e non "quantita=100, unita_misura=5, prezzo=10, divisa=1", dovendo poi andare a vedere a cosa corrispondono quegli id...

Ancora, per le righe di un ordine, adotterei una chiave primaria composta da 'id_ordine' e da 'riga_ordine' piuttosto che un id univoco...

Spero di essermi spiegato ;)
Dato</description>
		<content:encoded><![CDATA[<p>Ciao,<br />
aggiungo solo una nota all&#8217;esempio dei clienti. Dalla mia esperienza su sistemi gestionali professionali (es. IBM), ritengo che sia opportuno valutare il tipo di chiave in base alla tabella a cui ci si riferisce e al grado di leggibilità che si vuole ottenere. </p>
<p>Ad esempio, è molto utile identificare un cliente tramite un &#8216;codice_cliente&#8217; numerico (es. 000152 nel caso piaccia il padding) e usare questo dappertutto, controllando via software che non si stia inserendo un cliente già esistente (facendo attenzione anche a eliminare i punti, in modo da non farsi ingannare da srl/s.r.l./S.r.L./srl./ecc&#8230;).</p>
<p>In altri casi trovo invece più utile avere una chiave alfanumerica &#8216;parlante&#8217;; ad esempio, per la tabella delle divise monetarie si potrebbe utilizzare il codice ISO: EUR, USD&#8230;; o, per le nazioni: IT, NL, UK, US, ecc.<br />
In questo modo, leggendo dal db un record di riga d&#8217;ordine (es. per debug), vedrò &#8220;quantita=100, unita_misura=&#8217;KG&#8217;, prezzo=10, divisa=&#8217;EUR&#8217;&#8221; e non &#8220;quantita=100, unita_misura=5, prezzo=10, divisa=1&#8243;, dovendo poi andare a vedere a cosa corrispondono quegli id&#8230;</p>
<p>Ancora, per le righe di un ordine, adotterei una chiave primaria composta da &#8216;id_ordine&#8217; e da &#8216;riga_ordine&#8217; piuttosto che un id univoco&#8230;</p>
<p>Spero di essermi spiegato <img src='http://www.massimo-caselli.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Dato</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: maxgrante</title>
		<link>http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-11646</link>
		<dc:creator>maxgrante</dc:creator>
		<pubDate>Thu, 23 Aug 2007 11:47:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-11646</guid>
		<description>Ciao Claudio,
una chiave esterna su MySQL ad esempio si può gestire solo con tabelle di tipo InnoDB se vuoi garantirti la gestione da parte del DB di integrità referenziale.

Altrimenti è gestita come una chiave esterna e con i controlli del caso lato applicativo.

Per info riguardo le foreign key su MySQL ti rimando a questo link:
http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html

Ciao. Max</description>
		<content:encoded><![CDATA[<p>Ciao Claudio,<br />
una chiave esterna su <a target="_blank" href="http://www.mysql.com">mysql</a> ad esempio si può gestire solo con tabelle di tipo InnoDB se vuoi garantirti la gestione da parte del DB di integrità referenziale.</p>
<p>Altrimenti è gestita come una chiave esterna e con i controlli del caso lato applicativo.</p>
<p>Per info riguardo le foreign key su <a target="_blank" href="http://www.mysql.com">mysql</a> ti rimando a questo link:<br />
<a href="http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html" rel="nofollow">http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html</a></p>
<p>Ciao. Max</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Claudio</title>
		<link>http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-11616</link>
		<dc:creator>Claudio</dc:creator>
		<pubDate>Wed, 22 Aug 2007 18:08:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-11616</guid>
		<description>Come si imposta una chiave esterna?</description>
		<content:encoded><![CDATA[<p>Come si imposta una chiave esterna?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: maxgrante</title>
		<link>http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-45</link>
		<dc:creator>maxgrante</dc:creator>
		<pubDate>Sun, 19 Mar 2006 13:42:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-45</guid>
		<description>Ciao Gigiozzz,
ho aggiunto alla frase che esprimo sul concetto di chiave primaria che deve anche garantire univocità  del record nella tabella.

Ciao. Max</description>
		<content:encoded><![CDATA[<p>Ciao Gigiozzz,<br />
ho aggiunto alla frase che esprimo sul concetto di chiave primaria che deve anche garantire univocità  del record nella tabella.</p>
<p>Ciao. Max</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: maxgrante</title>
		<link>http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-44</link>
		<dc:creator>maxgrante</dc:creator>
		<pubDate>Sun, 19 Mar 2006 13:34:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-44</guid>
		<description>Ciao Gigiozzz,
grazie prima di tutto per i complimenti.
Cercherà di risponderti a tutto di seguito:
Riguardo allo &lt;strong&gt;scopo dell'univocità  certo, non posso che confermarti&lt;/strong&gt;.
In ogni caso la chiave primaria stessa è &lt;strong&gt;di fatto un indice che tende a velocizzare notevolmente le query sul campo/i che la rappresenta&lt;/strong&gt;.
Da questo se ne evince che quindi anche la velocizzazione è un suo scopo, infatti gli indici si utilizzano su campi non facenti parte della chiave primaria.

Sinceramente per quanto riguarda la chiave primaria in un DB di anagrafica clienti eviterei di usare CF o PI come chiave primaria per il fatto che sono molto "abbondanti" come formato di campi, preferirei perà fare un &lt;strong&gt;indice univoco su CF e/o PI in modo da evitare proprio i duplicati&lt;/strong&gt;.

Negli applicativi web, ma in generale direi anche per gli altri la tendenza è quella di usare PK numeriche e al massimo verificare univocità  di certi campi con indici UNIQUE.
Almeno questa è la mia opinione... :-)

Un saluto e grazie del post,
Ciao. Max</description>
		<content:encoded><![CDATA[<p>Ciao Gigiozzz,<br />
grazie prima di tutto per i complimenti.<br />
Cercherà di risponderti a tutto di seguito:<br />
Riguardo allo <strong>scopo dell&#8217;univocità  certo, non posso che confermarti</strong>.<br />
In ogni caso la chiave primaria stessa è <strong>di fatto un indice che tende a velocizzare notevolmente le query sul campo/i che la rappresenta</strong>.<br />
Da questo se ne evince che quindi anche la velocizzazione è un suo scopo, infatti gli indici si utilizzano su campi non facenti parte della chiave primaria.</p>
<p>Sinceramente per quanto riguarda la chiave primaria in un DB di anagrafica clienti eviterei di usare CF o PI come chiave primaria per il fatto che sono molto &#8220;abbondanti&#8221; come formato di campi, preferirei perà fare un <strong>indice univoco su CF e/o PI in modo da evitare proprio i duplicati</strong>.</p>
<p>Negli applicativi web, ma in generale direi anche per gli altri la tendenza è quella di usare PK numeriche e al massimo verificare univocità  di certi campi con indici UNIQUE.<br />
Almeno questa è la mia opinione&#8230; <img src='http://www.massimo-caselli.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Un saluto e grazie del post,<br />
Ciao. Max</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: gigiozzz</title>
		<link>http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-43</link>
		<dc:creator>gigiozzz</dc:creator>
		<pubDate>Sun, 19 Mar 2006 13:27:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.massimo-caselli.com/2006/03/19/concetto-chiave-primaria/#comment-43</guid>
		<description>premessa :sono un semplice studente di ing. inf. con scarsa esperienza sul campo (semplici db amministrativi o db di supporto a siti dinamici con max 1000 record  e sviluppati con mysql)

lo scopo dell PK nn sarebbe quello di identificare (tramite 1 o +  attributi) un dato garantendo univocità  e minimalità  piuttosto ke velocità ???

x la rapidità  nn si ricorre agli indici????

IMHO una PK int autoincrement sembrerebbe poco "relazionale" in un db di anagrafica clienti in cui utilizzerei CF o PIVA ????
sbaglio???
Negli applicativi sul campo fatti da professionisti del settore si utilizzano + pk numerike o composte da attribbuti ???

saluti e complimenti per il blog ke riporta sempre spunti interessanti</description>
		<content:encoded><![CDATA[<p>premessa :sono un semplice studente di ing. inf. con scarsa esperienza sul campo (semplici db amministrativi o db di supporto a siti dinamici con max 1000 record  e sviluppati con <a target="_blank" href="http://www.mysql.com">mysql</a>)</p>
<p>lo scopo dell PK nn sarebbe quello di identificare (tramite 1 o +  attributi) un dato garantendo univocità  e minimalità  piuttosto ke velocità ???</p>
<p>x la rapidità  nn si ricorre agli indici????</p>
<p>IMHO una PK int autoincrement sembrerebbe poco &#8220;relazionale&#8221; in un db di anagrafica clienti in cui utilizzerei CF o PIVA ????<br />
sbaglio???<br />
Negli applicativi sul campo fatti da professionisti del settore si utilizzano + pk numerike o composte da attribbuti ???</p>
<p>saluti e complimenti per il blog ke riporta sempre spunti interessanti</p>
]]></content:encoded>
	</item>
</channel>
</rss>
