Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Mô hình hóa cơ sở dữ liệu

Tôi đã viết một bài hát về chỉ nha khoa nhưng có ai làm sạch răng hơn không?

Frank Zappa

Khi chúng ta nghĩ đến phòng nha, liên tưởng đầu tiên của chúng ta là khoan, đau và sợ hãi. OK, điều đó nghe có vẻ tệ. Bên cạnh việc chăm sóc răng miệng, nha sĩ còn có nhiều nghĩa vụ khác liên quan đến nghề nghiệp, pháp lý hoặc cả hai. Tất cả chúng đều yêu cầu quản lý dữ liệu thích hợp.

Để đáp ứng yêu cầu về tài liệu này, nhiều phòng khám nha khoa và y tế sử dụng hồ sơ giấy. Tuy nhiên, chậm mà chắc, có một xu hướng đối với việc quản lý và ghi chép kỹ thuật số của thế kỷ 21.

Bên trong Văn phòng Y học Nha khoa

Đi khám răng không phải là điều chúng ta thường nhớ với niềm vui. Nếu may mắn, chúng tôi đã tránh được nỗi đau nhưng ví tiền của chúng tôi có lẽ bị ảnh hưởng nặng nề. Sau khi chúng tôi bước vào văn phòng nha sĩ, quy trình thường như sau:

  • Cả hai bạn đều tham gia vào một cuộc trò chuyện chit ngắn. (Thường khó chịu vì bạn đã hứa với nha sĩ là sẽ đến thăm anh ấy vào tuần tới và đã 2 năm trôi qua. Sau đó, bạn nói rằng bạn quên, anh ấy đồng ý và mọi thứ lại ổn.)
  • Bạn ngồi trên ghế trong khi anh ấy xem hồ sơ điều trị trước đây của bạn. Anh ấy hỏi liệu có điều gì đã xảy ra kể từ lần khám trước và có thông tin cập nhật nào về hồ sơ bệnh án của bạn không.
  • Anh ấy nhìn vào bên trong miệng bạn để xác định điều gì đã xảy ra và cho bạn biết cách khắc phục sự cố.
  • Bạn có thể đồng ý với kế hoạch điều trị của anh ấy hoặc chọn một số phương án khác.
  • Vài tháng sau, nụ cười Hollywood lại xuất hiện trên khuôn mặt bạn. Sẽ sớm hơn nhưng bạn sẽ không thể mỉm cười cho đến khi cuối cùng đã thanh toán đầy đủ hóa đơn cho công việc nha khoa của mình.

Tại thời điểm này, ngay cả chuyên gia cơ sở dữ liệu tận tâm nhất có lẽ cũng không nghĩ đến, ‘Chà, tôi ước có một mô hình dữ liệu cho trải nghiệm này!’ . Nhưng có, và nó đáng để kiểm tra. Vì vậy, chúng tôi đã in nó bên dưới.

Giới thiệu Mô hình Cơ sở dữ liệu Văn phòng Nha khoa của Chúng tôi




Ý tưởng đằng sau mô hình này là bao gồm mọi quy trình từ thời điểm chúng tôi lần đầu tiên bước vào văn phòng nha sĩ cho đến khi vấn đề được giải quyết. Một phần của mô hình này (các bảng có nhãn user_account , status , user_has_status , role , user_has_role ) đã được trình bày và mô tả trong các bài viết trước. Có thể ở đây các vai trò và trạng thái trông không cần thiết, nhưng hãy nhớ rằng quy trình cũng có thể bao gồm một y tá xử lý tiền sử (ghi chép hồ sơ), một lễ tân, một sinh viên nha khoa, một số trợ lý nha khoa được đào tạo hoặc thậm chí là một chuyên gia thăm khám hoặc một nhân viên vệ sinh. Tuy nhiên, chi tiết thanh toán sẽ không được xem xét trong bài viết này.

Các bảng trong Cơ sở dữ liệu Nha khoa

patient bảng là một trong hai bảng quan trọng nhất trong cơ sở dữ liệu. Nó lưu trữ dữ liệu của bệnh nhân và được kết nối với các tài liệu và lượt thăm khám của bệnh nhân. Ngoại trừ mail , tất cả các thuộc tính trong bảng là bắt buộc:

  • name - tên bệnh nhân
  • surname - họ của bệnh nhân
  • identification_number - trường này được sử dụng để lưu trữ id duy nhất của khách hàng được sử dụng trong thế giới thực
  • address - địa chỉ của bệnh nhân
  • phone - số điện thoại của bệnh nhân
  • mail - địa chỉ thư của bệnh nhân

Bảng quan trọng thứ hai trong cơ sở dữ liệu là visit . Khi được kết hợp với bảng patient , nó lưu trữ thông tin về sự kiện đã kích hoạt tất cả các hành động tiếp theo. Các thuộc tính trong bảng là:

  • visit_date - chứa ngày và giờ thực tế khi lượt truy cập đã diễn ra
  • patient_id - id của bệnh nhân có liên quan đến lần khám của anh ta không
  • dentist_id - là tham chiếu đến user_has_role giả sử rằng vai trò là nha sĩ

Tiếp theo là anamnesis bàn. Trong y học, tiền sử là một thủ tục mà chúng tôi thu thập và lưu trữ lịch sử dữ liệu y tế, chẳng hạn như tình trạng hiện tại của bệnh nhân. anamnesis bảng lưu trữ dữ liệu này. Vì điều này xảy ra ngay sau khi chúng tôi đến văn phòng, chúng tôi sẽ có ít nhất một lần khai báo cho mỗi sự kiện. Các thuộc tính trong bảng là:

  • anamnesis_id - là khóa chính của anamnesis bảng này cũng tham chiếu đến visit bảng
  • user_anamnesis_id - điều này liên quan đến user_has_role bàn. Lưu ý rằng nha sĩ không nhất thiết phải là người tạo ra tiền sử.
  • notes - chứa văn bản ghi chú về tiền sử cụ thể. Đây không phải là trường bắt buộc.

anamnesis_type bảng là một từ điển đơn giản được sử dụng để lưu trữ tất cả các giá trị có thể được tham chiếu trong anamnesis_catalog . Thuộc tính duy nhất là type_name và nó có thể chứa các giá trị như "bệnh tật", "dị ứng", "thuốc đã sử dụng". Tất nhiên, thuộc tính duy nhất đó là bắt buộc.

anamnesis_catalog bảng là từ điển cung cấp nhiều thông tin cụ thể hơn các giá trị được lưu trữ trong anamnesis_type bàn. Chúng tôi sẽ sử dụng nó để giữ dữ liệu về bệnh tật, dị ứng và thuốc cụ thể. Tất cả các thuộc tính đều là bắt buộc và chúng bao gồm:

  • catalog_name - là tên của anamnesis_type danh mục con
  • anamnesis_type_id - là tham chiếu đến anamnesis_type bảng

visit_anamnesis bảng được sử dụng để kết nối dữ liệu lượt truy cập với các giá trị từ danh mục lịch sử. Mọi thuộc tính trong bảng là bắt buộc:

  • anamnesis_anamnesis_id - là tham chiếu đến anamnesis bảng
  • anamnesis_catalog_id - là tham chiếu đến anamnesis_catalog bảng

Lưu ý rằng visit_anamnesis bảng là một quan hệ nhiều-nhiều kết nối các bảng có nhãn anamnesisanamnesis_catalog . Không có điểm nào để lưu trữ cặp này (anamnesis_anamnesis_id &anamnesis_catalog_id ) hai lần. Chúng tôi sẽ sử dụng cặp đó làm khóa chính.

document bảng là một danh mục đơn giản chứa các vị trí mà chúng tôi đã lưu tài liệu của bệnh nhân. Ví dụ về các tài liệu như vậy có thể là bản quét biểu đồ, X-quang và hóa đơn của bệnh nhân. Tất nhiên, chúng tôi sẽ không lưu những tài liệu này trực tiếp vào cơ sở dữ liệu. Đây là một sự đơn giản hóa thô lỗ của hệ thống quản lý tài liệu. Các thuộc tính trong document bảng là (tất cả đều là bắt buộc):

  • description - là một mô tả tài liệu ngắn gọn
  • location - chứa vị trí tài liệu chính xác
  • patient_id - là một tham chiếu đến patient bảng

tooth table là một từ điển đơn giản được sử dụng sau này khi nha sĩ chỉ định răng nào là vấn đề. Tất cả các thuộc tính trong bảng này là bắt buộc. Đó là:

  • is_baby_tooth - là một giá trị Boolean chỉ đơn giản là đánh dấu một chiếc răng có phải là răng sữa hay không. Tất nhiên, chúng tôi sẽ có các giá trị trùng lặp cho các răng có thể là cả hai. Điều này rất quan trọng vì quy trình có thể khác nhau tùy theo loại răng.
  • tooth - là một mô tả được sử dụng cho việc hoàn thành công việc của răng - nói chung, giá trị đó sẽ được hiển thị trên màn hình.

problem_catalog bảng là một từ điển đơn giản khác. Nó chứa một danh sách tất cả các vấn đề có thể xảy ra trên răng hoặc trong miệng. Ví dụ về các giá trị có thể có cho danh mục này là:“sâu răng”, “mòn răng”, “viêm lợi”, “lở miệng” hoặc “nụ cười kém hấp dẫn”. Chỉ problem_name thuộc tính bắt buộc.

problem_detected bảng kết nối dữ liệu danh mục thăm khám, răng và vấn đề với treatment bàn. Nó chứa các tham chiếu đến tooth , problem_catalogvisit những cái bàn. Tất cả các thuộc tính là bắt buộc ngoại trừ tooth_id . Lý do cho ngoại lệ này là một số vấn đề không chỉ liên quan đến một chiếc răng (ví dụ:viêm nướu liên quan đến nướu răng). Ba thuộc tính này cùng nhau tạo thành một khóa thay thế (DUY NHẤT). Hai thuộc tính còn lại là:

  • suggested_treatment_id là một tham chiếu đến treatment bảng (phương pháp điều trị do nha sĩ gợi ý). Nó có thể là giá trị NULL khi mọi thứ đều ổn và chúng tôi không cần điều trị gì.
  • selected_treatment_id là một tham chiếu khác đến treatment bàn. Nó chứa dữ liệu về nha sĩ điều trị và bệnh nhân đã đồng ý sử dụng. Điều này có thể là KHÔNG ĐỦ, có lẽ vì bệnh nhân cần thời gian để suy nghĩ về phương pháp điều trị được đề xuất và các khả năng khác.

Lưu ý rằng các thuộc tính suggested_treatment_idselected_treatment_id cả hai đều được tham chiếu đến treatment bàn. Chúng ta có thể làm điều này bởi vì chúng ta chỉ cần lưu trữ tối đa hai giá trị. Tất nhiên, nếu chúng ta không biết trước mình muốn lưu trữ bao nhiêu giá trị thì chúng ta nên sử dụng quan hệ nhiều-nhiều ở đây.

step bảng là một từ điển đơn giản chứa tất cả các bước có thể có trong tất cả các phương pháp điều trị. Các thuộc tính (tất cả đều là bắt buộc) trong bảng là:

  • step_name - là một tên bước ngắn được sử dụng trên màn hình
  • description - là mô tả về các hành động được thực hiện trong bước này

treatment trên thực tế, bảng là một từ điển của tất cả các phương pháp điều trị mà phòng nha khoa cung cấp. Vì hầu hết các phương pháp điều trị thường bao gồm một số bước, chúng ta phải biết bước nào là cuối cùng. Các thuộc tính trong bảng đều là bắt buộc:

  • treatment_name - là tên của phương pháp điều trị trong hệ thống
  • description - là một mô tả điều trị ngắn gọn
  • final_step_id - là tham chiếu đến step bàn. Chúng tôi có thể sử dụng thông tin này để phát hiện xem liệu trình điều trị đã kết thúc hay chưa và bắt đầu hành động tự động hoặc chỉ cần hiển thị thông tin đó cho người dùng và để họ chọn hành động tiếp theo.

treatment_steps bảng là một quan hệ nhiều-nhiều kết nối các bước với các phương pháp điều trị. Các thuộc tính bắt buộc trong bảng là:

  • treatment_id - là tham chiếu đến treatment bảng
  • step_id - là tham chiếu đến step bảng
  • step_order - là một con số xác định thứ tự của các bước trong điều trị

Trong bảng này, hai khóa thay thế (UNIQUE) được định nghĩa:

  • cặp (treatment_id &step_id ) - bước này chỉ có thể được chỉ định cho việc điều trị một lần
  • cặp (treatment_id &step_order ) - việc điều trị không thể có hai bước với cùng một số thứ tự

visit_steps bảng là danh sách tất cả các bước đã thực sự được tiến hành sau chuyến thăm đó. Có hai lý do tại sao chúng tôi muốn lưu trữ chúng trong các bảng riêng biệt:

  1. Chúng tôi có thể đã chọn một phương pháp điều trị, nhưng chúng tôi không cần tất cả các bước được xác định cho nó và
  2. Bằng cách này, chúng tôi sẽ lưu trữ thời gian thực tế khi bước được thực hiện.

Các thuộc tính trong bảng (tất cả đều là bắt buộc ngoại trừ problem_detected_idnotes ) như sau:

  • visit_id - là tham chiếu đến visit bảng
  • treatment_steps_id - là một tham chiếu đến treatment_steps bảng
  • problem_detected_id - là tham chiếu đến problem_detected bàn. Mối quan hệ này cung cấp cho chúng tôi thông tin về vấn đề nào đã khởi xướng hành động đó. Có thể là KHÔNG khi nha sĩ quyết định thực hiện một số hành động không liên quan đến bất kỳ vấn đề đã phát hiện nào.
  • step_time - là ngày và / hoặc giờ khi bước thực sự được thực hiện
  • notes - là các ghi chú cho bước đó, nếu cần

visit_status table là một từ điển đơn giản được sử dụng để lưu trữ tất cả các trạng thái có thể có mà một lượt truy cập có thể có. Chúng tôi có thể sử dụng các trạng thái như “lần đầu đến văn phòng”, “lần đầu tiên”, “đang điều trị”, “đã điều trị thành công”. Nó chỉ chứa một thuộc tính, status_name , là bắt buộc.

visit_status_history bảng được sử dụng để lưu trữ dữ liệu về các trạng thái mà lượt truy cập đã trải qua. Ý nghĩ là chúng tôi thêm trạng thái theo cách thủ công sau khi hoàn thành một số hành động nhất định (ví dụ:sau khi khám bệnh, sau khi kết thúc một vài bước của một số điều trị). Các thuộc tính, tất cả đều là bắt buộc, theo sau:

  • status_time - là ngày / giờ khi trạng thái được chèn
  • visit_status_id - là tham chiếu đến visit_status bảng
  • visit_id - là tham chiếu đến visit bảng

Những cải tiến có thể có đối với Mô hình Cơ sở dữ liệu Nha khoa

Mô hình của chúng tôi đang có một khởi đầu tốt, nhưng nó có thể được cải thiện. Ví dụ:nó không bao gồm các mục sau:

  • phương thức thanh toán và hóa đơn
  • lên lịch cuộc họp (mặc dù điều này có thể được thực hiện bằng cách chèn dữ liệu vào visit_steps bảng cho các sự kiện trong tương lai)
  • xử lý tài liệu

Tuy nhiên, nó khiến bạn nghĩ khác về văn phòng nha khoa của bạn và các quy trình của nó, phải không?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tệp DSN và Phần mềm IRI

  2. Kết hợp trong Transact-SQL

  3. 5 công cụ thiết kế cơ sở dữ liệu miễn phí hàng đầu

  4. Các nguyên tắc cơ bản về biểu thức bảng, Phần 6 - CTE đệ quy

  5. Một số điều nhanh về phản hồi PASS