I'm working on an integration between Salesforce and Netsuite.
The company I work for uses 'versions' of products, for example Custom Laptop v1.0, Custom Laptop v2.0.
From what we've seen, Netsuite doesn't really like to group these products at all - they're all just individual products with no relevance to each other.
This makes it difficult when placing orders via Salesforce as the salesperson and customer isn't bothered about what version of the product they're buying, we just want the process to be -
Order placed for Custom Laptop in Salesforce
Order goes to Netsuite
Warehouse team picks product and decides which version to pick, which stock pool it comes from
Order is fulfilled
Is there anything in Netsuite that would allow a 'grouping' of products? I looked at product kits but this seems more manufacturing based.
It sounds like Lot Numbered Inventory Items would work for you here. With lot numbered items, you have a single item and define multiple 'lots' which can be named anything you'd like.
You would have a single item record in NetSuite (Custom Laptop). When an order is placed for that item, your warehouse determines which lot to choose from (v1.0, v2.0, v2.1, etc). The lot number is entered on the Item Fulfillment and the order is shipped.
#mike-robbins' solution would be the way to go if you have fixed inventory of each item. I'm not sure you can receive multiple duplicate lot numbers though.
What I have done in situations similar to this is to create assemblies and turn on assembly versioning. An assembly can have a single component so in your case the minimum components of Assembly 'Laptop' would be
Component Qty Revison
-----------------------
Laptop v1 1 A
Laptop v2 1 B
Version A would have only Laptop v1 and Version B would have Laptop v2. The assembly could also contain any common things where tracking stock or COGS is desired.
Related
I am more familiar with Excel but want all my information in Notion since it’s so powerful.
I’m trying to track weeks of results for multiple individuals on a team. I would like to see a team view but also see the individual performance on a weekly basis.
I want to have the information from each team member rollup to the database that has the sum of all teams for that particular week.
Team page
Teammate 1
Teammate 2
How multiple teams(which own different system components/micro-services) in a big tech company share their databases.
I can think of multiple use cases where this would be required. For example in an e-commerce firm, same product will be shared among multiple teams like product at first will be part of product onboarding service, then may be catalog service (which stores all products and categories), then search service, cart service, order placing service, recommendation service, cancellation & return service and so on.
If they don't share any db then
Do they all have redundant copy of the products with same product ID and
Wouldn't there be a challenge to achieve consistency among multiple team.
There are multiple related doubt I have in both the case wether they share DB or not.
I have been through multiple tech blogs and video on software design, and still didn't get satisfying answer. Do share some resources which can give a complete workflow of how things work end-to-end in a big tech firm.
Thank you
In the microservice architecture, each microservice exposes endpoints where other microservice can access shared information between the services. So one service would store as minimal information of a record that is managed by another microservice.
For example if a user service would like to fetch orders for a particular user in an e-commerce case, then the order service would expose an endpoint given a user id would return all orders related to the userid supplied and so on...so essentally the only field related to the user that the order service needs to store is the userid, the rest of the user details is irrelevant to it.
To further improve the cohesion and understanding between teams, data discovery apis/documentation are also built to share metadata of databases to other teams to further explain what each table/field means for one to efficiently plan out a microservice. You can read more about how such companies build data discovery tools
here
If I understand you correctly, you are unsure how different departments receive data in a company?
The idea is that you create reusable and effective API's to solve this problem.
Let's generically say the company we're looking at is walmart. Walmart has millions of items in a database(s). Each item has a unique ID etc etc.
If Walmart is selling items online via walmart.com, they have to have a way to get those items, so they create API's and use them to grab items based on certain query conditions.
Now, let's say walmart has decided to build an app... well they need those exact same items! Well, good thing we already created those API's, we will use the exact same ones to grab the data.
Now, how does Walmart manage which items are available at which store, and at what price? They would usually link this meta data through additional database schema tables and tying them all together with primary and foreign keys.
^^ This essentially allows walmart to grab ONLY the item out of their CORE database that only has details that are necessary to the item (e.g. name, size, color, SKU, details, etc), and link it to another database that is say, YOUR local walmart that contains information relevant to only your walmart location in regard to that item (e.g. price, stock, aisle number etc).
So using multiple databases yes, in a sense.
Perhaps this may drive you down some more roads: https://learnsql.com/blog/why-use-primary-key-foreign-key/
https://towardsdatascience.com/designing-a-relational-database-and-creating-an-entity-relationship-diagram-89c1c19320b2
There's a substantial diversity of approaches used between and even within big tech companies, driven by different company/org cultures and different requirements around consistency and availability.
Any time you have an explicit "query another service/another DB" dependency, you have a coupling which tends to turn a problem in one service into a problem in both services (and this isn't a necessarily a one-way thing: it's quite possible for the querying service to encounter a problem which cascades into a problem in the queried service (this is especially possible when a cache becomes load-bearing, which has led to major outages at at least one FANMAG in the not-that-distant past)).
This has led some companies that could be fairly called big tech to eschew that approach in their service design, typically by having services publish events describing what has changed to a durable log (append-only storage). Other services subscribe to that log and use the events to construct their own eventually consistent view of the data owned by the other service (i.e. there's some level of data duplication, with services storing exactly the data they need to function).
I have to develop a database for an enterprise to manage its pc hardware and software stocks, PC breakdowns and pc assignment to users.
I'm a beginner to database design* so I'd like some advice on how to model the database properly from scratch.
I've already done some research and started something, but since you guys are experts, I'd like your take on it, please.
Details are not important, what I need is to know what tables you would make, and their relationships.
I've included a screenshot of the ERD I've come up with. Please have a look.
Here is what's I've done so far. I know it may be poorly design, keep in mind it's a first for me.
Basically, I have a list of users.
let's go for a user table.
Each user can have many pcs (but one pc for one user only).
so, PC table, with FK to users.
A PC consists of many types of identified hardware from a set list of MB, CPU, HDDs, RAM, GFX cards.
Here I made a category table for hard type (cpu, gfx, etc..)
Then make and model tables.
Finally a mode detail table to store all sorts of details like frequencies, sizes, etc..
I link those tables to a hardware table with FKs in it to have a mix giving me a piece of hardware.
---> I know there must be a way to link the table in muck better/proper/efficient manner there!
I want to be able to display the PC user/hardware given from a set list and track the hardware via its billings.
So I make a hardware stock table. I link one hardware to many hardware stocked with FK in hardware_stock table and its billing.
I can track failures/breakdowns for each PCs.
there's a failure type table. And I link it to PC via an intersecting table failure event containing FKs to pc_id and failure_type_id.
then I keep comments in a separated table linked to failure_event.
So there it is. I've not tackled the software management yet.
Basically, it's the same than hardware, I have a set list of different software and:
I want to know what's installed on the PCs.
I want to know the billings and license attached to the software stocks.
Thanks for the feedback!
I think there are two options:
Add tables "software", "publisher", "software_category"; add a link table similar to "pc_hardware".
Change 'hardware' to "component", and add 'Software' as a component category.
Option 1 adds more tables, but is more distinct; managing software licences may be easier with this approach.
Option 2 has fewer tables, but is a little harder to understand. Under this approach, a software licence could be a type of 'product warranty' (but that feels messy!)
Just out of interest, have you investigated any open-source or COTS products that do asset management and issue tracking? I have no idea if there are any products available, but you can't be the first person/enterprise to want to do this sort of thing!
Your relationships are a bit much for me to go through.
Here's how you can check your own ERD. Using pencil and index cards, write down the screen fields of your proposed system screens and the report fields of your proposed system reports.
Something like this:
Add a new PC
------------
PC name
PC network
User
...
One index card per screen and report.
If you wish, you can sketch out the appearance of the screens and reports.
Once you've done this for every screen and report you can imagine, you can map your paper screens to your paper database (ERD). If you can easily imagine (code) the select, insert, update, and delete SQL for yor paper database, then your design is good.
This is the scenario i have:
im developing a web app that will list down all the details of a car that the user picks from a list. I have a database of all car models, makes, sizes, prices etc. Besides i also have the price trend for the past 5 yrs. You may assume that i have a few of such tables and the data volume is about 10s of thousands of records.
My online application should be able to let the user pick his choice of one car model and optionally provide his address. With just this user input, i want to be able to generate a pdf report with the following information:
Comparison of selected car model with other cars manufactured in the same country. (e.g, if user selected, honda, i want to compare it with toyota, which comes from the same country)
Comparion of selected car with other car of similar type (eg. sedan vs sedan)
Price trend of the car for the last 5 yrs - Nearest car workshops in user's neighbourhood within a radius of 10km (if user has given me his address)
i will be drawing out several other data from my database.
I would like to present this report instantly, say within 3 minutes to the user. So now the question, is, what software/tools/program/database etc should i be using, taking in consideration the huge amount of data and the need to present this in the fastest possible time as a pdf report?
There are whole lot of possibilities. You can use PHP (or) Java (or) .Net (or) so on...for web application, MySQL, SQL Server, Oracle etc., as database (If data is really big and grows like anything daily you may consider Hbase also) It dependency on how soon you want your product out in the market and how much scalable it should be and how much comfortable you are with any of those technologies.
Some technologies support nice user interface, some may not but strong in other area of web application.
How much money/time you have for development, licensing also plays role in deciding answer for this question.
In my MSC research, I have to build an eCommerce app (like Amazon, eBay, etc) but a location based one . I need a freely available sample data for the store. So is there some freely available dataset available that represents a set of products, like groceries, movies, books, cars, apps, electronics, weapons, library, etc? .I need its size to be adequate for analysis. I need a database with at least 200 customers , 1000 products of different categories and 1000 orders. The customers data have to include information such as age, sex, location, education.
You could try the Microsoft Contoso BI Demo Dataset. I have not used it, so I do not know if it will meet all of your requirements. However, given that it is used to demonstrate BI functionality across all of MS' BI products, one would hope it was fairly comprehensive.