2010-09-22 28 views
7

Tôi không phải là quản trị viên cơ sở dữ liệu hoặc kiến ​​trúc sư, vì vậy tôi phải hỏi những ai làm điều đó 24/7. Khái niệm về một ORM (ánh xạ đối tượng đối tượng) được thiết lập như thế nào trong thế giới quản trị và kiến ​​trúc cơ sở dữ liệu? Nó vẫn đang diễn ra, được chấp thuận rộng rãi nhưng vẫn còn trong giai đoạn đầu của nó, hoặc thường bị từ chối? Tôi đang học khu vực này và muốn có cảm giác về việc liệu nó sẽ là kiến ​​thức được đánh giá cao bởi phân khúc rộng lớn hơn của lĩnh vực này.Được thiết lập như thế nào là ORM (ánh xạ đối tượng đối tượng) trong thế giới cơ sở dữ liệu

+1

Tôi muốn dba của chúng tôi là 24/7 ... Tôi may mắn nếu tôi có thể tìm thấy một trong số 9 và 5! Tôi thề đó là một yêu cầu công việc của dba rằng họ có khả năng biến mất ngay trước khi bạn cần. haha – CaffGeek

+0

@chad, chúng tôi đã phát hành áo choàng invisibilty vào ngày đầu tiên. – HLGEM

Trả lời

4

Sử dụng rộng rãi và chắc chắn hiện tại và tương lai gần. Việc truy cập cơ sở dữ liệu thông qua một lớp mã hóa của thế hệ SQL được mã hóa luôn luôn đầy khó khăn và lỗi chính tả, và khó sử dụng nhất. ORM cho phép bạn sử dụng một kho lưu trữ kiên trì theo cách lập trình.

Tôi nghĩ blog này đã cho rằng nó tốt: http://jonkruger.com/blog/category/fluent-nhibernate/ và SO bài đăng như thế này (nHibernate versus LLBLGen Pro) hiển thị số lượng người đang sử dụng chúng.

4

Tôi có thể cho bạn biết từ kinh nghiệm của tôi. Chúng tôi là một công ty sản xuất năng lượng mặt trời 2,5 tỷ đô la và chúng tôi đang xây dựng thế hệ sản phẩm tiếp theo của chúng tôi về công nghệ ORM. Chúng tôi đang sử dụng LINQ-To-SQL, khá thành công. Chúng tôi rất hài lòng với nó.

+0

LINQ-To-SQL không phải là công cụ ORM hoàn chỉnh nhưng LINQ to Entities (Khung thực thể ADO.Net) là một API ORM (Object Relational Mapper). Vui lòng tham khảo tại đây http://stackoverflow.com/questions/8676/entity-framework-vs-linq-to-sql –

+0

@ A-Var - "Hoàn thành" là chủ quan. Chỉ vì L2S là 1: 1 với các bảng cơ sở dữ liệu, không làm cho nó không đầy đủ. Theo nghĩa đó, mọi ORM không đầy đủ so với sản phẩm có nhiều tính năng nhất, chuông và còi. –

4

Khái niệm đã tồn tại trong ít nhất 20 năm.

Nếu bạn nhìn vào bất kỳ khung web nào phù hợp, cho dù đó là Java, Ruby, PHP, C# hoặc Python, tất cả đều kết hợp các ORM. Nói chung, nó được coi là một sự lựa chọn chuyên nghiệp hơn trừ khi bạn có nhu cầu cụ thể cho hiệu suất cao hoặc SQL tùy chỉnh.

+1

Hiệu năng cao, điều này không hoàn toàn chính xác. Nhiều ORM sẽ cho phép bạn sử dụng SQL tùy chỉnh nếu bạn muốn chịu trách nhiệm về hiệu suất đôi khi. – samquo

+0

Chắc chắn, nó là tốt để chỉ ra rằng. – JAL

+0

Tôi đoán suy nghĩ của tôi là, nếu bạn đang sử dụng SQL tùy chỉnh, bạn chỉ sử dụng ORM để có được kết nối cơ sở dữ liệu và nó không thực sự sử dụng ORM tại thời điểm đó. – JAL

5

ORM được sử dụng rộng rãi. Django (khung ứng dụng web python) sử dụng SQLAlchemy. Hibernate là phổ biến cho các chương trình Java. ORM làm cho phát triển ứng dụng SQL nhanh hơn, giảm số lượng mã soạn sẵn mà bạn phải viết và ẩn cơ sở dữ liệu nào bạn đang sử dụng từ phần còn lại của ứng dụng. Hiệu suất có thể bị sử dụng ORM, vì vậy hãy chuẩn bị để tùy chỉnh mọi thứ nếu cần.

6

Rất nhiều nơi đang sử dụng chúng, điều đó không có nghĩa là chúng đang sử dụng chúng tốt hoặc chúng là ý tưởng tốt cho sức khỏe lâu dài của cơ sở dữ liệu. Không có nghĩa là họ không phải là một trong hai, thường là nó chỉ có nghĩa là những người chọn họ không nghĩ về cách này ảnh hưởng đến thiết kế cơ sở dữ liệu, bảo trì và hiệu suất theo thời gian.

Các vấn đề liên quan