Database table design
1. Smart table design
Chúng ta có 2 table như sau:
| fish_info | |||
|---|---|---|---|
| common | species | location | weight |
| bass, largemouth | M. salmoides | Montgomery Lake, GA | 22 lb 4 oz |
| walleye | S. vitreus | Old Hickory Lake, TN | 25 lb 0 oz |
| fish_records | ||||||
|---|---|---|---|---|---|---|
| first_name | last_name | common | location | state | weight | date |
| George | Perry | bass, largemouth | Montgomery Lake | GA | 22 lb 4 oz | 06/02/1932 |
| Mabry | Harper | walleye | Old Hickory Lake | TN | 25 lb 0 oz | 08/02/1960 |
Hai table trên có một số cột giống nhau, một số cột mà table kia không có, và có cột được tách ra như với location và state.
Theo bạn nghĩ thì table nào được thiết kế tốt hơn?
Read more...Múi giờ trong Python
Múi giờ (timezone) là gì?
Múi giờ của bạn là bao nhiêu? Nếu câu trả lời là “UTC+X” thì có thể là nó đúng trong thời điểm hiện tại, chứ không hắn là lúc nào cũng vậy. Ví dụ dữ liệu múi giờ của “Asia/Ho_Chi_Minh”:
Read more...What ORMs lie to you
What is ORM?
Nếu bạn là web developer và dùng một framework nào đó, chắc hẳn bạn đã biết về ORM. Còn nếu không, wow, good for you!
Read more...Validation và database constraint
Validation trong Rails rất đa dạng, từ kiểm tra tính tồn tại (presence), định dạng (format), duy nhất (uniqueness)… Với mỗi ràng buộc dữ liệu đều có thể được viết chỉ một dòng với phương thức validates nhằm đảm bảo dữ liệu được lưu phải chính xác và hợp lý.
Trường hợp duy nhất có thể dùng callback trong Rails
Để bắt đầu, chúng ta cùng đi qua một ví dụ kinh điển trong Rails, ứng dụng mua bán trực tuyến.
Read more...Tôi đã kết thúc với Rails
Bài viết được dịch từ http://solnic.eu/2016/05/22/my-time-with-rails-is-up.html
Năm ngoái tôi đã quyết định mình sẽ không sử dụng Rails nữa, cũng không hỗ trợ những gem cho Rails mà tôi bảo trì. Hơn nữa, tôi sẽ cố gắng hết sức để không phải đụng đến Rails.
Read more...Bang method trong ActiveRecord Transaction
Chúng ta có 2 đoạn code như sau:
def create
@user = User.new params[:user]
@user.save!
redirect_to user_path(@user)
rescue ActiveRecord::RecordNotSaved
flash[:notice] = 'Unable to create user'
render :action => :new
end
và:
def create
@user = User.new params[:user]
if @user.save
redirect_to user_path(@user)
else
flash[:notice] = 'Unable to create user'
render :action => :new
end
end