<?xml version="1.0" encoding="UTF-8"?><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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Database Denormalization</title>
	<atom:link href="http://bloghoctap.com/web-programming/database-denormalization.html/feed" rel="self" type="application/rss+xml" />
	<link>http://bloghoctap.com/web-programming/database-denormalization.html</link>
	<description>Web Developer, Graphic Designer &#38; Trainer</description>
	<lastBuildDate>Wed, 08 Feb 2012 09:46:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Thái Thanh Phong</title>
		<link>http://bloghoctap.com/web-programming/database-denormalization.html/comment-page-1#comment-2443</link>
		<dc:creator>Thái Thanh Phong</dc:creator>
		<pubDate>Wed, 15 Jun 2011 14:31:43 +0000</pubDate>
		<guid isPermaLink="false">http://bloghoctap.com/?p=1661#comment-2443</guid>
		<description>@Duy Tuyên :
Như phần xử lý của anh . như vậy phải xử lý tên file ảnh , loại bỏ các kí tự được dùng để đánh dấu. Mình xinh chia sẽ . Chúng ta có thể lưu tên file ảnh vào 1 array .

Ví dụ :

$data = array(&quot;ảnh_1.jpg&quot;,&quot;ảnh_2.jpg&quot;,&quot;ảnh_3.jpg);
sau đó dùng hàm : serialize($data) sẽ biến array đó thành chuỗi có các kí tự đặc biệt. Sau đó ta sẽ lưu vào field cần thiết.

Để hiển thị thì ta dùng unserialize($data) . Tức là dịch chuỗi kí tự đặc biệt thành array và hiển thị ra thôi.

Vậy tóm lại là serialize để mã hóa dữ liệu , unserialize để giải mã dữ liệu . /o_o\</description>
		<content:encoded><![CDATA[<p>@Duy Tuyên :<br />
Như phần xử lý của anh . như vậy phải xử lý tên file ảnh , loại bỏ các kí tự được dùng để đánh dấu. Mình xinh chia sẽ . Chúng ta có thể lưu tên file ảnh vào 1 array .</p>
<p>Ví dụ :</p>
<p>$data = array(&#8220;ảnh_1.jpg&#8221;,&#8221;ảnh_2.jpg&#8221;,&#8221;ảnh_3.jpg);<br />
sau đó dùng hàm : serialize($data) sẽ biến array đó thành chuỗi có các kí tự đặc biệt. Sau đó ta sẽ lưu vào field cần thiết.</p>
<p>Để hiển thị thì ta dùng unserialize($data) . Tức là dịch chuỗi kí tự đặc biệt thành array và hiển thị ra thôi.</p>
<p>Vậy tóm lại là serialize để mã hóa dữ liệu , unserialize để giải mã dữ liệu . /o_o\</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://bloghoctap.com/web-programming/database-denormalization.html/comment-page-1#comment-1402</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Thu, 04 Nov 2010 16:38:20 +0000</pubDate>
		<guid isPermaLink="false">http://bloghoctap.com/?p=1661#comment-1402</guid>
		<description>Cảm ơn bạn đã chia sẽ.</description>
		<content:encoded><![CDATA[<p>Cảm ơn bạn đã chia sẽ.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: boygiandi</title>
		<link>http://bloghoctap.com/web-programming/database-denormalization.html/comment-page-1#comment-1401</link>
		<dc:creator>boygiandi</dc:creator>
		<pubDate>Thu, 04 Nov 2010 16:33:16 +0000</pubDate>
		<guid isPermaLink="false">http://bloghoctap.com/?p=1661#comment-1401</guid>
		<description>&quot; Ví dụ: trên ds lọc ra những người thuộc quyền quản lý của manager có id = 1, phép so sánh sẽ là: … LIKE ‘%~’ + id_manager + ‘~%’ &quot;


Select có % ở đầu trên 1 bảng lớn là cực kì chậm kể cả khi trường đó đã được đánh index .</description>
		<content:encoded><![CDATA[<p>&#8221; Ví dụ: trên ds lọc ra những người thuộc quyền quản lý của manager có id = 1, phép so sánh sẽ là: … LIKE ‘%~’ + id_manager + ‘~%’ &#8221;</p>
<p>Select có % ở đầu trên 1 bảng lớn là cực kì chậm kể cả khi trường đó đã được đánh index .</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: t4</title>
		<link>http://bloghoctap.com/web-programming/database-denormalization.html/comment-page-1#comment-837</link>
		<dc:creator>t4</dc:creator>
		<pubDate>Thu, 06 May 2010 08:18:30 +0000</pubDate>
		<guid isPermaLink="false">http://bloghoctap.com/?p=1661#comment-837</guid>
		<description>theo mình thấy nếu làm như bạn duy tuyên nói thì sẽ hơi khó khăn trong việc xóa và sửa giá trị đó :(</description>
		<content:encoded><![CDATA[<p>theo mình thấy nếu làm như bạn duy tuyên nói thì sẽ hơi khó khăn trong việc xóa và sửa giá trị đó <img src='http://bloghoctap.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://bloghoctap.com/web-programming/database-denormalization.html/comment-page-1#comment-815</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Thu, 29 Apr 2010 00:41:05 +0000</pubDate>
		<guid isPermaLink="false">http://bloghoctap.com/?p=1661#comment-815</guid>
		<description>Cảm ơn những chia sẽ quý báu của bạn.</description>
		<content:encoded><![CDATA[<p>Cảm ơn những chia sẽ quý báu của bạn.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Duy Tuyên</title>
		<link>http://bloghoctap.com/web-programming/database-denormalization.html/comment-page-1#comment-814</link>
		<dc:creator>Duy Tuyên</dc:creator>
		<pubDate>Wed, 28 Apr 2010 18:38:43 +0000</pubDate>
		<guid isPermaLink="false">http://bloghoctap.com/?p=1661#comment-814</guid>
		<description>Trong thực tế đúng là phải chơi nhiều chiêu phá cách như thế! Ví dụ khác:

- 1 sản phẩm có nhiều hình, theo qui tắc đúng thì thiết kế 2 table: products và product_images. Tuy nhiên, ta có thể làm đơn giản hơn bằng cách tạo 1 table products, trong đó có field images. Giả sử hình ảnh chúng ta ko cần ghi chú thì field image sẽ chứa dữ liệu dạng như:

1.jpg@2.jpg@3.jpg

explode cái chuỗi trên với @ là ra đc array chứa 3 hình của sản phẩm! (@ có thể thay bằng các ký tự đặc biệt khác, miễn làm sao dự đoán đc cái ký tự đó ko bao giờ xuất hiện trong tên của hình là đc)

Ngoài ra, còn có thể áp dụng cho 1 ví dụ cụ thể khác:

- Nhân viên trong cty chịu sự quản lý của 1 hoặc nhiều người
- nv này và quản lý của nv đó mới đc xem ds khách hàng của họ

Theo lý thuyết, tạo 1 table users và 1 table user_manager để biểu diễn. Tuy nhiên, ta có thể dùng chuỗi để diễn đạt. Cụ thể, dùng 1 table users, có thêm cột manager, dữ liệu cột manager có dạng:

~1~2~3~4~

Với ~ là ký tự ngăn cách, 1-2-3-4 là id của manager (hoặc thay bằng username)

Chú ý, chuỗi này ko giống như ở trên, có thêm ký tự ngăn cách ở 2 đầu chuỗi, mục đích: hỗ trợ filter hoặc search.

Ví dụ: trên ds lọc ra những người thuộc quyền quản lý của manager có id = 1, phép so sánh sẽ là: ... LIKE &#039;%~&#039; + id_manager + &#039;~%&#039;

Nếu ko có dấu ~ ở đầu hoặc cuối thì sẽ ko lần ra đc id_manager ở đầu và cuối chuỗi.

Vài dòng chia sẻ!</description>
		<content:encoded><![CDATA[<p>Trong thực tế đúng là phải chơi nhiều chiêu phá cách như thế! Ví dụ khác:</p>
<p>- 1 sản phẩm có nhiều hình, theo qui tắc đúng thì thiết kế 2 table: products và product_images. Tuy nhiên, ta có thể làm đơn giản hơn bằng cách tạo 1 table products, trong đó có field images. Giả sử hình ảnh chúng ta ko cần ghi chú thì field image sẽ chứa dữ liệu dạng như:</p>
<p><a href="mailto:1.jpg@2.jpg">1.jpg@2.jpg</a>@3.jpg</p>
<p>explode cái chuỗi trên với @ là ra đc array chứa 3 hình của sản phẩm! (@ có thể thay bằng các ký tự đặc biệt khác, miễn làm sao dự đoán đc cái ký tự đó ko bao giờ xuất hiện trong tên của hình là đc)</p>
<p>Ngoài ra, còn có thể áp dụng cho 1 ví dụ cụ thể khác:</p>
<p>- Nhân viên trong cty chịu sự quản lý của 1 hoặc nhiều người<br />
- nv này và quản lý của nv đó mới đc xem ds khách hàng của họ</p>
<p>Theo lý thuyết, tạo 1 table users và 1 table user_manager để biểu diễn. Tuy nhiên, ta có thể dùng chuỗi để diễn đạt. Cụ thể, dùng 1 table users, có thêm cột manager, dữ liệu cột manager có dạng:</p>
<p>~1~2~3~4~</p>
<p>Với ~ là ký tự ngăn cách, 1-2-3-4 là id của manager (hoặc thay bằng username)</p>
<p>Chú ý, chuỗi này ko giống như ở trên, có thêm ký tự ngăn cách ở 2 đầu chuỗi, mục đích: hỗ trợ filter hoặc search.</p>
<p>Ví dụ: trên ds lọc ra những người thuộc quyền quản lý của manager có id = 1, phép so sánh sẽ là: &#8230; LIKE &#8216;%~&#8217; + id_manager + &#8216;~%&#8217;</p>
<p>Nếu ko có dấu ~ ở đầu hoặc cuối thì sẽ ko lần ra đc id_manager ở đầu và cuối chuỗi.</p>
<p>Vài dòng chia sẻ!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tuan</title>
		<link>http://bloghoctap.com/web-programming/database-denormalization.html/comment-page-1#comment-780</link>
		<dc:creator>Tuan</dc:creator>
		<pubDate>Fri, 09 Apr 2010 01:48:31 +0000</pubDate>
		<guid isPermaLink="false">http://bloghoctap.com/?p=1661#comment-780</guid>
		<description>Wow, hôm qua mới nói chiện zới Tòan ếch, hôm nay có rồi! Nhanh tè ^^</description>
		<content:encoded><![CDATA[<p>Wow, hôm qua mới nói chiện zới Tòan ếch, hôm nay có rồi! Nhanh tè ^^</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lhd</title>
		<link>http://bloghoctap.com/web-programming/database-denormalization.html/comment-page-1#comment-770</link>
		<dc:creator>lhd</dc:creator>
		<pubDate>Wed, 07 Apr 2010 08:54:00 +0000</pubDate>
		<guid isPermaLink="false">http://bloghoctap.com/?p=1661#comment-770</guid>
		<description>Thanks. Thi thoảng mình vẫn gặp mà giờ mới biết</description>
		<content:encoded><![CDATA[<p>Thanks. Thi thoảng mình vẫn gặp mà giờ mới biết</p>
]]></content:encoded>
	</item>
</channel>
</rss>

