by m3rLinEz
6. July 2008 04:21
ตอนแรกจะเขียนเรื่อง Object-oriented ลงบลอกนี้ ไปๆมาๆกลายเป็น Database ไปแล้ว T_T (ทั้งๆที่นี่เป็น topic ที่ไม่ชอบเล้ยยย)
เนื่องจากว่าโปรเจค SE ที่จะทำจะใช้ตัวสร้าง Data Access Layer อัตโนมัติตัวหนึ่งที่ชื่อว่า Subsonic ครับ แต่เนื่องจาก Syntax ที่ใช้ในการ Query ของเจ้า Subsonic นั้นมัน simple เกินไปหน่อย (เขียน SQL ลงไปตรงๆก็ไม่ใช่ Practice ที่ดี ตามที่ Subsonic แนะนำไว้) จนถ้าจะให้ทำ SELECT ที่ซับซ้อนมากๆแบบที่เคยเขียนเมื่อวันก่อนคงไม่ไหว ผู้พัฒนาเค้าแนะนำให้ใช้ View ก็เลยคิดว่าคงต้องลองดูซักหน่อย
ให้ดูโครงสร้างก่อน
ตอนสร้าง View เขียนแบบนี้
CREATE VIEW `durianitems`.`catalog_product_view` AS
SELECT p.product_id, p.name, p.quantity
FROM product p, catalog c
WHERE p.product_id = c.product_id;
ได้ผลลัพธ์แบบนี้ครับ
mysql> select * from catalog;
+------------------+------------+
| catalog_entry_id | product_id |
+------------------+------------+
| 1 | CG001 |
| 2 | CG003 |
+------------------+------------+
2 rows in set (0.00 sec)
mysql> select product_id,name,quantity from product;
+------------+--------------------+----------+
| product_id | name | quantity |
+------------+--------------------+----------+
| CG001 | Blender | 100 |
| CG002 | Sony Playstation 3 | 0 |
| CG003 | LG LCD TV | 0 |
+------------+--------------------+----------+
3 rows in set (0.00 sec)
mysql> select * from catalog_product_view;
+------------+-----------+----------+
| product_id | name | quantity |
+------------+-----------+----------+
| CG001 | Blender | 100 |
| CG003 | LG LCD TV | 0 |
+------------+-----------+----------+
2 rows in set (0.01 sec)
หวังว่าคงเป็นประโยชน์ครับ :D