• 0

Who knows about Databases - ERD


Question

Hi,

Let me start by saying I am new to database design. I have been programming for 5 years now but recently felt like it would be of worth to learn about databases and database design. I picked up a few books and am now working my way through them. So without further ado, hear is my first question.

I am currently trying to understand and learn how to use the Entity Relationship Model. One of the books I am reading asks me to conceptualize a basic ERD showing the relationships between a Department, Employee, and Manager. The book offered me up these business rules?.

Each department has many employees, but each employee belongs to one department.

Each department is managed by one employee, and each of those managers can manage only one department.

This is my first attempt at it

Drawing1-1.jpg

So what I am confused about is if a manager is an employee how do I represent that relatiomship.

Regards

Chad

Link to comment
https://www.neowin.net/forum/topic/936372-who-knows-about-databases-erd/
Share on other sites

9 answers to this question

Recommended Posts

  • 0

3 entities: Department, Role & Employee

Role has Unique Identifier, Data

Department has Unique Identifer, Data

Employee has Unique Identifier, Data, Role Identifier (this is the relationship to the Role entity), Department Identifier (this is the relationship to the Department entity)

Employee is at the top, the other entities make up what makes the employee in the organisation.

  • 0

I have to be honest I am struggling a little with the concept proposed however my solution would be the following, I have ignored one part of your concept as it is fundamentally flawed in my opinion.

Each department has many employees, but each employee belongs to one department. Each department is managed by one employee, and each of those managers can manage only one department.

Department and Manager have a one to one relationship, Manager and Employee should have a one to many relationship and Department and Manager should have a One to One relationship if I logically subtract the requirement for an employee to belong to only one department, you wouldn't implicitly define this within an entity relationship diagram, it would be assumed based on the one to many that currently exists between Department and Employee, therefore my proposal is the following.

2da12zq.jpg

You'll notice this is actually a UML class diagram but it is just to illustrate the point about the way the relationships are setup.

  • 0

You can show the relationship of employee to manager with one table by using a self-join. In other words, a relationship is made back to the same table.

There would be a field that held an ID to the employee's manager, and that self-join would point back to pull the manager's information. Eventually, though, you'd end up with at least one record with no manager (owner, or top boss), so your code would have to take that into account.

http://en.wikipedia.org/wiki/Join_(SQL)#Self-join

  • 0

Employee Table

[Columns]

EmployeeId : Unique primary Key

DepartmentId : This is the foreign key to the Department Table

Other data...

Department Table

[Columns]

DepartmentId: Unique primary Key

Other data...

This one is the relation table keeping track of one to one relation between a department and an employee assigned as a manager

Department Managers

[Columns]

DepartmentId

EmployeeId

  • 0

Manager and Employee should have a one to many relationship

By saying this then you would have to assume that every Employee has to be a Manager. I don't know you would rectify this with UML, but in Crows Foot notation you would do soemthing like.

Manager -|-0--------------< Employee

Which basically says an employee does not have to be a Manager, but has the option to be exactlly 1 Manager.

You can show the relationship of employee to manager with one table by using a self-join. In other words, a relationship is made back to the same table.

There would be a field that held an ID to the employee's manager, and that self-join would point back to pull the manager's information. Eventually, though, you'd end up with at least one record with no manager (owner, or top boss), so your code would have to take that into account.

http://en.wikipedia.org/wiki/Join_(SQL)#Self-join

I am just now learning how to represente this with crow's foot. The only problem I see is that it does not take into any account that a Manager might be it's own entity. If you self-join an employee and a department to represent this, then the idea a Manager might have it's own special attributes in addition to those of Employee gets thrown out the window.

Thanks

Chad

  • 0

There seems to be a redundancy in that design (although pretty much everybody in databases differs in opinion).

You only need two tables,

Managers ARE Employees, therefore it would make more logical sense that they both were in the same table and you used an attribute like Employer Level to determine e.g. Standard, Manager etc. This gives you more future scalability too incase you wanted to add like a Supervisor.

Employee & Department.

If however the spec said that Managers have different details to Employees all together, then as part of the first form of normalisation you would remove the repeating group (but don't worry about that yet, your head may explode).

  • 0

There seems to be a redundancy in that design (although pretty much everybody in databases differs in opinion).

You only need two tables,

Managers ARE Employees, therefore it would make more logical sense that they both were in the same table and you used an attribute like Employer Level to determine e.g. Standard, Manager etc. This gives you more future scalability too incase you wanted to add like a Supervisor.

Employee & Department.

If however the spec said that Managers have different details to Employees all together, then as part of the first form of normalisation you would remove the repeating group (but don't worry about that yet, your head may explode).

Difference between a manager and a normal employee is their role :)

  • 0

By saying this then you would have to assume that every Employee has to be a Manager. I don't know you would rectify this with UML, but in Crows Foot notation you would do soemthing like.

Manager -|-0--------------< Employee

Which basically says an employee does not have to be a Manager, but has the option to be exactlly 1 Manager.

I am just now learning how to represente this with crow's foot. The only problem I see is that it does not take into any account that a Manager might be it's own entity. If you self-join an employee and a department to represent this, then the idea a Manager might have it's own special attributes in addition to those of Employee gets thrown out the window.

Thanks

Chad

"Crows Feet" Notation came about to simplify the representation of relationships within ERD's it is kind of a standard I guess. I wanted to elaborate on my point a little here, the fundamentals of database design is that through the correct use of database normalisation (if your not familiar with that term you very soon will be) the data contained within the database should have no redundancy by design. In simple terms, no data within the database should be duplicated elsewhere or as I prefer to look at it, over engineered, its just as bad as data redundancy.

What you have been asked to conceptualize in my opinion contains redundancy. Back to the point regarding employees and managers, I was always taught throughout my computer science degree to look at everything in OO (Object Orientation) so if you consider that an employee can be a manager according to the rules of normalisation you shouldn't therefore need a manager table, as guess what, this creates redundancy, your duplicating the data twice.

If an employee can manage a department, and only one employee can manage a department then this should be a one-to-one relationship, but as a department can also contain many employee's this is where it gets a little bit tricky and I think you can make a big mistake right here unless you think of it like this.

The purpose of ERD's is to visualise the relationship between classes or tables if your non object orientated. It was developed so that at a glance you can see a department can have many employee's therefore when constructing the tables within the database you would know what kind of relationship to define and as such whether or not to invoke a foreign (sometimes known as a concrete or compound) key, which is a second unique identifier within a table.

An ERD is not designed to show authorisation levels, and if you think "Department" in an object orientated way it would have attributes and operations. Attributes would be aspects that apply to only a Department so things like stock, rooms, chairs, tables, employee's I suppose, an operation are things the Department can do, so this would be order stock, move chairs, fire employees, move tables.

Therefore if an Employee can be a Manager this would be an attribute of the Employee class, and its relevant operation would be "Promote to Manager" "Demote to Employee", you wouldn't have a separate table to house this information as your duplicating the data.

Apologies for the long winded response, but I would be doing you a disservice if I didn't explain it fully.

You can define database structure using either crows feed in ERD's or you can try UML, if I was you just starting out now, I would go with UML its a standard and is far easier to represent than an ERD with crows feet it can get extremely confusing with some very complex database structures, imagine a hospital for example and trying to display that with crows feet!.

Look at my original post above, thats a very simple UML diagram using object orientated classes that contain attributes and operations.

There seems to be a redundancy in that design (although pretty much everybody in databases differs in opinion).

You only need two tables,

Managers ARE Employees, therefore it would make more logical sense that they both were in the same table and you used an attribute like Employer Level to determine e.g. Standard, Manager etc. This gives you more future scalability too incase you wanted to add like a Supervisor.

Employee & Department.

If however the spec said that Managers have different details to Employees all together, then as part of the first form of normalisation you would remove the repeating group (but don't worry about that yet, your head may explode).

+1 Agreed

Difference between a manager and a normal employee is their role :)

+1 Agreed - this is where the attributes and operations come in from UML / Class Diagrams.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • A group made up of dozens of cybersecurity experts, including several well-known veterans of the industry, published an open letter to the U.S. government asking it to lift the export control order on Anthropic’s Fable and Mythos models. According to the open letter, “this action has taken the best models away from [cybersecurity] defenders” who now can’t use the models to find vulnerabilities and make their software and products more secure. “To pull the best capabilities away from defenders without a good reason when our adversaries are rapidly advancing is dangerous,” read the letter. On Friday, the U.S. government ordered Anthropic to limit the export of Fable and Mythos, citing national security concerns, without explaining the specific reasons behind the order, according to Anthropic. In response, the company suspended access to the models to all users worldwide.     https://techcrunch.com/2026/06/15/cybersecurity-vets-protest-dangerous-us-government-ban-on-anthropics-most-powerful-models/
    • Vivaldi 8.0.4033.48 by Razvan Serea Vivaldi is a cross-platform web browser built for – and with – the web. A browser based on the Blink engine (same in Chrome and Chromium) that is fast, but also a browser that is rich in functionality, highly flexible and puts the user first. A browser that is made for you. Vivaldi is produced with love by a founding team of browser pioneers, including former CEO Jon Stephenson von Tetzchner, who co-founded and led Opera Software. Vivaldi’s interface is very customizable. Vivaldi combines simplicity and fashion to create a basic, highly customizable interface that provides everything a internet user could need. The browser allows users to customize the appearance of UI elements such as background color, overall theme, address bar and tab positioning, and start pages. Vivaldi features the ability to "stack" and "tile" tabs, annotate web pages, add notes to bookmarks and much more. Vivaldi 8.0.4033.48 changes: [Chromium] Update to 148.0.7778.267 ESR (includes security fixes from 149.0.7827.114/115) [Crash] When closing devtools with input caret in a CSS property field (VB-128998) [Linux][Media] Fetch an updated proprietary media support file (VB-129132) [Permissions] Global Permissions counter shows all permissions (64) as overridden (VB-127713) Download: Vivaldi 64-bit | 139.0 MB (Freeware) Download: Vivaldi 32-bit | ARM64 View: Vivaldi Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Two variants of the KAMRUI H2 mini PC receive deeper discounts on Amazon by Steven Parker KAMRUI (sister company of AceMagic) reached out to us, letting us know that they are applying further discounts to two of their H2 mini PC variants, and in times like these, every little helps. First off, it's the Core i5 14450HX 32GB+1TB variant, which already received a discount from $699 to $567.99 on Amazon, so you may be asking what you get for that. Its most important features are listed below. 32GB Memory Configuration, Exceptional Value. Driven by rising AI demand, the DDR memory supply is tightening, making high-capacity memory more valuable. KAMRUI maintains high-quality standards while offering strong value with a 32GB RAM + 1TB SSD configuration, which delivers excellent performance and storage. Intel i5-14450HX, HX-Class Performance Powered by the Intel Core i5-14450HX (10 cores/16 threads, up to 4.8GHz, 54W TDP)-HX series delivers desktop-class performance. Enjoy up to 120% higher multi-core performance vs. i7-1185G7 and stronger sustained performance than Ryzen 9 6900HX under heavy workloads. With 14450HX performance, it handles coding, compiling, Docker with ease, runs 10+ apps simultaneously—Excel, Chrome, Zoom, video editing—with smooth multitasking and fast load times. 32GB RAM & 1TB NVMe SSD - expandable up to 4TB Mini pc W-11 Pro equipped with 32GB (16GB×2) DDR4 dual-channel memory and a 1TB NVMe PCIe 4.0×4 SSD, mini pc delivers fast system response and efficient data access for demanding workloads. Dual M.2 slots support storage expansion up to 4TB. Large memory support running multiple virtual machines simultaneously, enabling fast deployment and isolated sandbox testing, significantly improving development efficiency and multitasking performance. HX-Class Heat Dissipation, Higher Productivity 14450HX Mini computers W-11 pro equipped with upgraded silent centrifugal fans, dual copper heat pipes, dual fin-stack cooling modules, and an optimized dual-airflow design, the processor can maintain ≥95% of multi-core performance even under long-duration heavy workloads. The HX platform is specifically designed for multitasking, rendering, and content creation, and multitasking, delivering desktop-class stability and powerful performance. Triple 4K Productivity Power Supports triple 4K displays and handles complex workflows like coding, data processing, and multitasking with ease. WiFi 6 delivers fast, reliable connectivity for video, conferencing, and transfers. Bluetooth 5.2 ensures stable, low-latency wireless connections. Versatile Connectivity This mini computer comes with 1x Type-C(10Gbps data transfer), 1x RJ45 Ethernet, 2x USB3.2 Gen2 (10Gbps), 4x USB3.2 Gen1 Type-A (5Gbps), PD output, 1x HDMI 2.0, 1x DP 1.4, and 1x 3.5mm audio jack. It offers versatile connectivity to connect multiple devices effortlessly, reducing the need for frequent plugging and unplugging. Small Size, Big Performance Mini PC measures just 5.04 × 5.04 × 1.63 inches, over 80% smaller than a traditional desktop, yet equipped with the high-performance 14450HX processor for near-desktop-level power. With VESA mounting support, it transforms cluttered desks into clean, organized setups. Normally costing $699, but now down to $ 535.79, which includes an additional 6% off the Amazon listed price. That equals a total of 24% off the MSRP. KAMRUI Hyper H2 (Core i5 14450HX 32GB+1TB) for $ 535.79 (was $699) Use code 2UD2IW7D for the above price during checkout (expires on June 30) Editors note: This appears to be listed as a "frequently returned item" on Amazon, but you should take into account the reviews on the page that discuss a completely different PC, it would seem that this is yet another recycled sales page that is now listing this newer item, possibly to retain the positive 4.5 star rating on the page. Next up, we have the Core i9 14900HX/32GB+1TB variant, which normally costs $799.99 but is already discounted to $759.99 on Amazon. Again, the most important highlights for this variant are listed below. Upgrade 14th Intel Core i9-14900HX Processor KAMRUI Mini Computers features the 14th Gen Intel Core i9-14900HX processor (up to 5.8GHz, TDP 55W, 36MB cache, 24C/32T), delivering 25%–40% higher performance than the i5-14450HX (24C/32T) and i7-1280P in multitasking, creative work, and high-load applications. Manufactured using Intel 7 (10 nm) process technology, Mini Computer efficiently allocates workloads to deliver faster response times, smoother operation, and heightened productivity. 32GB DDR4 & 1TB SSD - Expandable to 4TB KAMRUI Intel Core i9-14900HX mini PC features dual-channel 32GB DDR memory (expandable to 64GB) and 1TB NVMe PCIe 4.0×4 SSD, delivering speeds 40% faster than PCIe Gen3. The KAMRUI Micro PC features two M.2 2280 SSD slots, each expandable up to 2TB, effortlessly accommodating a high-capacity system drive and an ultra-fast cache drive. This achieves a perfect balance of speed, capacity, and flexibility, effortlessly handling large projects and high-speed workflows. 4K UHD Triple Display KAMRUI 14900HX Mini PC features a 4K@60Hz UHD graphics card (Intel UHD Graphics), supporting 4K@60Hz high-definition video playback for a premium visual experience. Mini Gaming PC incorporates an HDMI 2.0 port + DP 1.4 port + USB3.2 Gen2 Type-C port, supporting 4K triple display output. Mini PC can connect to three monitors to fulfil your multi-screen collaboration requirements. Ultra-high-definition visuals and ultra-fast connectivity significantly enhance your productivity. RJ45 LAN Port+WiFi6E+BT5.2 KAMRUI Mini PC features a 1.0Gbps LAN port, suitable for high-speed broadband environments in homes, offices, and large enterprises. Bluetooth 5.2 enables connection to peripherals such as headphones, mice, and keyboards. Dual-band WiFi 6E and BT 5.2 deliver enhanced interference resistance and more stable wireless signals. Regardless of your network environment's complexity, the KAMRUI H2 mini computer delivers a relatively stable and smooth network experience. Professional-Grade Cooling System KAMRUI Mini gaming PC features an upgraded silent centrifugal fan, dual copper heat pipes, and a dual-fin module. Its all-copper structure enhances thermal conductivity, boosting airflow efficiency by 35% and overall heat dissipation by 40%, ensuring the CPU can stably deliver up to 55W performance under full load. Upgraded aluminum heatsink keeps the SSD cool to maintain read/write speeds, ensuring desktop-level stability and power for demanding workloads. Compact Size, Infinite Possibilities KAMRUI H2 mini computers measure just 5.04 x 5.04 x 1.63 inches, a fraction of the size of a traditional desktop, yet deliver powerful performance for demanding workloads. With the included VESA mount, you can easily attach a small pc behind a monitor or place it in your TV cabinet, turning your display into a sleek mini PC while saving valuable desk space. Versatile Connectivity This KAMRUI mini gaming computer comes with 1*USB3.2 Gen2 Type-C(up to 10Gbps data transfer), 1*RJ45 Ethernet, 2*USB3.2 Gen2 (10Gbps), 4*USB3.2 Gen1 Type-A (5Gbps), 1*HDMI 2.0, 1*DC, 1*DP 1.4, and 1*3.5mm audio jack. It offers versatile connectivity to connect multiple devices effortlessly, reducing the need for frequent plugging and unplugging. Normally costing $799, but now down to $721.99, which includes an additional 5% off the Amazon listed price. That equals a total of 10% off the MSRP. KAMRUI Hyper H2 (Core i9 14900HX/32GB+1TB) for $ 721.99 (was $799) Use code AQ5Z6A47 for the above price during checkout (expires on June 30) KAMRUI claims that they offer lifetime technical support along with a 12-month warranty. For either of these mini PCs, should you encounter any issues during use, KAMRUI claims it will do its utmost to assist customers. As an Amazon Associate, we earn from qualifying purchases.
    • Good. I hope more people sue them for focusing on this worthless junk.
  • Recent Achievements

    • One Year In
      Console General earned a badge
      One Year In
    • One Year In
      Twozo Technologies earned a badge
      One Year In
    • One Month Later
      Twozo Technologies earned a badge
      One Month Later
    • Week One Done
      Twozo Technologies earned a badge
      Week One Done
    • Veteran
      branfont went up a rank
      Veteran
  • Popular Contributors

    1. 1
      +primortal
      512
    2. 2
      +Edouard
      201
    3. 3
      PsYcHoKiLLa
      108
    4. 4
      Steven P.
      89
    5. 5
      Nick H.
      71
  • Tell a friend

    Love Neowin? Tell a friend!